Una guía completa para la sobrecarga de métodos en Python (con ejemplos)
Publicado: 2022-04-23La sobrecarga es la capacidad de una función, método u operador para funcionar de manera diferente cuando pasa diferentes parámetros al mismo. La sobrecarga de métodos o la sobrecarga de funciones en Python tienen términos de uso común. Algunas de las principales ventajas de la sobrecarga es que puede usar un método de varias maneras, lo que lo ayuda a mantener su código limpio y elimina la complejidad cuando trabaja con un equipo.
¿Qué es la sobrecarga de métodos?
En la programación orientada a objetos, la sobrecarga de métodos se utiliza en escenarios en los que, para un objeto específico, se puede llamar a un método en particular de más de una forma según los requisitos del proyecto.
Los ejemplos de sobrecarga de métodos en Python se analizan en detalle más adelante en este artículo.
¿Qué es la anulación de métodos?
La anulación de métodos en Python es similar a la sobrecarga de métodos, excepto que la anulación de métodos se produce entre una subclase y una superclase. Tiene los mismos parámetros que cuando se llama a los métodos. Sin embargo, se comportan de manera diferente debido a que parte de la funcionalidad se anula desde la superclase.
Ejemplo de anulación de métodos
clase X:
def método1(auto):
print('Soy la primera característica de la clase X')
def método2(auto):
print('Soy la segunda característica de la clase X')
clase Y(X):
def método1(auto):
print('Soy la primera característica modificada de la clase X en la clase Y')
def método3(auto):
print('Soy una característica de la clase Y')
objeto = Y()
obj.método1()
Producción:
Soy la primera característica modificada de la clase X en la clase Y
method1 fue anulado por la clase Y.
Aprenda cursos de ciencia de datos en línea en upGrad
Sobrecarga de métodos en Python
El problema con la sobrecarga de métodos en Python es que Python no lo admite de forma predeterminada. Sin embargo, existen soluciones alternativas para hacer lo mismo.
El problema
Consideremos el siguiente código:
def suma(a, b):
s = un + segundo
huellas dactilares)
def suma(a, b, c):
s = a + b + c
huellas dactilares)
# agregar(8, 9) muestra error
suma(8, 9, 2)
A primera vista, el código se ve bien, pero cuando intentas ejecutarlo con dos argumentos, Python te mostrará un error porque en Python, cuando tienes más de un método con el mismo nombre pero diferente número de argumentos, solo el Se puede utilizar el último método definido.
Hay dos formas diferentes de superar este problema de sobrecarga de métodos en Python.
1: Usar los mismos métodos difiere según el tipo de datos de los argumentos
Podemos ver un argumento para saber el tipo de dato, junto con *args que permite pasar un número variable de argumentos a un método en Python. Luego podemos usar declaraciones if para controlar cómo se comporta el método de acuerdo con la entrada.
CÓDIGO:
def agregar(dt, *argumentos):
si dt =='int':
s = 0
si dt =='cadena':
s = ”
para x en argumentos:
s = s + x
huellas dactilares)
agregar('int', 11, 9)
add(“str”, “Hola”, “¿Cómo estás?”)
Producción:
20
¿Hola cómo estás?
Esta fue la primera solución para implementar la sobrecarga de métodos en Python.
Explore nuestros cursos populares de ciencia de datos
Programa Ejecutivo de Postgrado en Data Science del IIITB | Programa de Certificado Profesional en Ciencia de Datos para la Toma de Decisiones Empresariales | Maestría en Ciencias en Ciencia de Datos de la Universidad de Arizona |
Programa de Certificado Avanzado en Ciencia de Datos de IIITB | Programa de certificado profesional en ciencia de datos y análisis empresarial de la Universidad de Maryland | Ver todos los cursos de ciencia de datos |
2: Usando el Decorador de Despacho Múltiple (Forma más eficiente)
Multiple Dispatch Decorator es menos una solución alternativa y funciona exactamente como se supone que debe hacerlo. Puedes instalarlo usando pip3.
pip3 instala múltiples despachos
CÓDIGO:
desde envío múltiple despacho de importación
@dispatch(int,int) # para 2 argumentos enteros
def suma(n1,n2):
s = n1 + n2
huellas dactilares)
@dispatch(int,int,int) # para 3 argumentos enteros
def agregar (n1, n2, n3):
s = n1 + n2 + n3
huellas dactilares)
@dispatch(float,float,float) # para argumentos flotantes
def agregar (n1, n2, n3):
s = n1 + n2 + n3
huellas dactilares
sumar(5,2)
sumar(6,1,4)
agregar (3.4, 1.2, 5.6)
Producción:
7
11
10.2
Al ejecutar, el despachador crea un nuevo objeto que almacena diferentes implementaciones del método y decide el método a seleccionar según el tipo y la cantidad de argumentos pasados al llamar al método. De esta manera, el método de sobrecarga en Python es más eficiente.
Lea nuestros populares artículos de ciencia de datos
Trayectoria profesional en ciencia de datos: una guía profesional completa | Crecimiento profesional en ciencia de datos: el futuro del trabajo ya está aquí | ¿Por qué es importante la ciencia de datos? 8 formas en que la ciencia de datos aporta valor al negocio |
Relevancia de la ciencia de datos para los gerentes | La última hoja de trucos de ciencia de datos que todo científico de datos debería tener | Las 6 razones principales por las que debería convertirse en científico de datos |
Un día en la vida del científico de datos: ¿Qué hacen? | Mito reventado: la ciencia de datos no necesita codificación | Business Intelligence vs Data Science: ¿Cuáles son las diferencias? |
Conclusiones
Si desea ingresar al campo de la ciencia de datos, Python es un buen primer paso. Para profundizar y estudiar más el tema, puede consultar los cursos avanzados de certificaciones en línea como el Programa Ejecutivo en Ciencia de Datos de IIIT-Bangalore en asociación con upGrad . Este programa cubre los aspectos importantes del tema y brinda muchos beneficios adicionales, como asistencia laboral, tutoría 1: 1, soporte en línea, conferencias en vivo y módulos adicionales opcionales para entusiastas que desean mejorar aún más sus habilidades.
¿Cuál es la diferencia entre una función y un método en Python?
En Python, hay dos tipos de funciones: funciones integradas y funciones definidas por el usuario. print() y len() son ejemplos de funciones integradas. Las funciones definidas por el usuario en python son funciones que podemos definir nosotros mismos para realizar una tarea específica más de una vez en un programa típico. El método es como una función, excepto que los métodos pertenecen a una clase y solo se pueden llamar en un objeto. (Sintaxis: obj.método())
¿Cómo elijo entre Python y R?
Python y R son los dos principales lenguajes utilizados para Data Science. Si bien qué usar depende de varios factores, como la empresa a la que apunta, el tipo de proyecto, los requisitos del cliente, etc., en general, si es un principiante en programación y trabaja en un entorno de ingeniería que crea aplicaciones a gran escala, Python es una gran elección. Por otro lado, si tiene experiencia previa en programación y desea ejecutar tareas de análisis de datos rápidamente y visualizar sus datos usando hermosos gráficos para tomar una mejor decisión estadística, R es el camino a seguir.
¿Cuánto tiempo lleva dominar la ciencia de datos?
Cada uno tiene su propio ritmo de aprendizaje. Aunque, para un principiante sin experiencia previa en programación, le tomará cerca de 6 a 7 meses fortalecer sus fundamentos. Publique eso, nuevamente depende de cuánto practique y los proyectos en los que trabajar. Si sigue una certificación en línea, debería poder dominarla en aproximadamente un año.