Sobrecarga de métodos en Python

Rana Hasnain Khan 15 febrero 2024
  1. Sobrecarga de métodos en Python
  2. Ventajas de la sobrecarga de métodos en Python
  3. Sobrecarga de métodos en Python usando diferentes tipos de datos en el mismo método
  4. Sobrecarga de métodos en Python usando múltiples decoradores de despacho
Sobrecarga de métodos en Python

Este tutorial presentará la sobrecarga de métodos en Python y sus ventajas con ejemplos.

Sobrecarga de métodos en Python

La sobrecarga de métodos juega un papel fundamental en Python. Los métodos a veces aceptan cero parámetros y, a veces, uno o más parámetros.

Cuando llamamos al mismo método de diferentes maneras, se conoce como sobrecarga de métodos. Python no admite el método de sobrecarga de forma predeterminada como otros idiomas.

Dos o más métodos no pueden tener los mismos nombres en Python porque la sobrecarga de qué método nos permite hacer el mismo operador con diferentes significados. Analicemos la sobrecarga de métodos en detalle.

Si dos o más métodos de la misma clase toman parámetros distintos, es posible que tengan el mismo nombre. La característica de sobrecarga de métodos permite que un mismo operador tenga varias interpretaciones.

La sobrecarga se refiere a un método u operador que puede realizar muchas funciones con el mismo nombre.

Ahora, analicemos la sobrecarga de métodos con un ejemplo básico en el que realizamos dos cosas diferentes usando el mismo parámetro.

Ejemplo:

# python
class methodOverload:
    def MethodHi(self, user=None):
        if user is not None:
            print("Hello " + user)
        else:
            print("Hello")


MethodObj = methodOverload()
MethodObj.MethodHi()
MethodObj.MethodHi("Hasnain")

Producción:

Sobrecarga de métodos en Python Ejemplo simple

Como puedes ver en este ejemplo, creamos una clase methodOverload en la que definimos el método MethodHi que saludará al usuario con y sin nombre. Después de esa clase, creamos una instancia de objeto usando la clase y la llamamos con y sin un parámetro.

Este tipo de carga de funciones con diferentes parámetros se conoce como sobrecarga de métodos. Ahora, analicemos las ventajas de usar la sobrecarga de métodos en nuestros programas de Python.

Ventajas de la sobrecarga de métodos en Python

Hay muchas ventajas de usar la sobrecarga de métodos en los programas de Python. Algunos de ellos son los siguientes:

  1. La sobrecarga de métodos reduce la complejidad, la función o el método del programa. Hace que sea sencillo para el usuario usarlo sin parámetros, con un solo parámetro o con múltiples parámetros.
  2. La sobrecarga de métodos mejora la calidad del código, lo hace eficiente y cubre la mayoría de los casos de uso para que nuestra aplicación sea exitosa.
  3. La sobrecarga de métodos aumenta la reutilización del programa y lo hace fácilmente accesible.

Ahora, veamos algunos ejemplos de sobrecarga de métodos, que cubriremos diferentes aspectos de la sobrecarga de métodos. Cuando hacemos las mismas funciones y queremos trabajarlas de manera diferente, podemos usar la sobrecarga de métodos.

Sobrecarga de métodos en Python usando diferentes tipos de datos en el mismo método

En nuestro primer ejemplo, haremos una clase de suma y usaremos diferentes tipos de datos para realizar dos tareas con el mismo método. El programa verifica cuando el tipo de dato es un número entero, entonces la respuesta será la suma de números.

Si el tipo de datos es una cadena, la respuesta será la concatenación de cadenas. Usaremos un bucle for que pasa por los argumentos y los comprueba todos.

Si son enteros, se suman. Y si son cadenas, se combinan, como se muestra a continuación.

Ejemplo:

# python
def addition(datatype, *args):
    if datatype == "int":
        result = 0
        for x in args:
            result = result + x
        print(result)
    if datatype == "str":
        result = []
        for x in args:
            result.append(x)
        print(result[0], result[1])


addition("int", 7, 11)

addition("str", "Hello", "python")

Producción:

Sobrecarga de métodos en Python Ejemplo de tipo de datos diferente

En el ejemplo anterior, cuando proporcionamos enteros como tipo de datos con números para sumar, recibimos la suma de números. Pero cuando dimos cadena como tipo de datos y pasamos cadenas, el mismo método concatenó las cadenas y mostró el resultado.

Sobrecarga de métodos en Python usando múltiples decoradores de despacho

Ahora, veamos otro ejemplo que será un poco complicado. En este ejemplo, utilizaremos la forma eficiente de realizar la sobrecarga de métodos.

Necesitamos instalar Multiple Dispatch Decorators usando el siguiente comando.

pip install multipledispatch

Después de la instalación, lo importaremos a nuestro programa. Despacha tres enteros y tres flotantes y muestra los resultados a continuación.

Ejemplo:

# python
from multipledispatch import dispatch


@dispatch(int, int, int)
def multiply(oneInt, twoInt, threeInt):
    ans = oneInt * twoInt * threeInt
    print(ans)


@dispatch(float, float, float)
def multiply(oneInt, twoInt, threeInt):
    ans = oneInt * twoInt * threeInt
    print(ans)


multiply(3, 7, 8)
multiply(3.6, 5.9, 9.9)

Producción:

Sobrecarga de métodos en Python usando envío múltiple

Como puede ver en el ejemplo anterior, podemos usar varios decoradores de despacho para enviar diferentes tipos de datos y obtener resultados de ellos usando el mismo método para todos los tipos de datos que queremos usar.

Rana Hasnain Khan avatar Rana Hasnain Khan avatar

Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.

LinkedIn