Herencia en Python | Herencia de Python [con ejemplo]
Publicado: 2020-12-14Python es uno de los lenguajes de programación más populares. A pesar de una transición llena de altibajos de la versión de Python 2 a Python 3, el lenguaje de programación orientado a objetos ha visto un salto masivo en popularidad.
Si planea una carrera como desarrollador de Python, seguramente obtendrá un pago más alto. Como el salario promedio de un desarrollador de Python es de alrededor de $ 119,082 por año. Pero, antes de continuar con el programa de aprendizaje de Python, aquí hay algo que debe saber primero: Herencia en Python. Consulte nuestras certificaciones de ciencia de datos si está ansioso por adquirir experiencia en Python y otras herramientas.
Comencemos primero con ¿qué es exactamente la herencia en Python?
Tabla de contenido
¿Qué es una herencia en Python?
Al igual que una relación padre-hijo, la herencia funciona en clases derivadas en relación con la clase base. Cada clase "Derivada" hereda de una clase "Base". La herencia se representa en UML o Lenguaje Unificado de Modelado. Es un lenguaje de modelado estándar que incluye un conjunto integrado de diagramas para ayudar a los desarrolladores a especificar, estructurar y documentar los elementos de los sistemas de software.
La relación de herencia define las clases que heredan de otras clases como clases derivadas, subclases o subtipos. La clase base sigue siendo la fuente de la que hereda una subclase. Por ejemplo, tiene una clase Base de "Animal" y un "León" es una clase Derivada. La herencia será León es un Animal.
Entonces, la pregunta es, ¿qué hereda la clase “León” de “Animal”?
Una clase "León" hereda
- Interfaz
- Ejecución
Nota: Puede reemplazar los objetos de clase derivada con objetos de clase base en una aplicación conocida como el principio de sustitución de Liskov . Indica que si un programa de computadora tiene el objeto P como subtipo de Q, puede reemplazar fácilmente P con Q sin alterar las propiedades.
Consulte también: Salario de desarrollador de Python en India
Ventajas de la herencia en Python
- La herencia en Python ayuda a los desarrolladores a reutilizar los objetos.
- Cada vez que una clase hereda la clase base, obtiene acceso a la funcionalidad del objeto principal.
- La reutilización debido a la herencia también es confiable ya que la clase base ya está probada.
- Bajo tiempo y costo de desarrollo
- La estandarización de la interfaz entre clases se vuelve fácil.
- Reduce la redundancia de código y ayuda a mejorar la extensibilidad
- La creación de bibliotecas de clases se vuelve fácil.
Tipos de herencia en Python
Herencia Única
Ya hemos visto qué es la herencia única: la herencia de la clase "Derivada" de la clase "Base". Entendámoslo a través de un ejemplo,
Clase País:
def MostrarPaís(self):
print(“Esto es España”);
clase Estado (País):
def ShowState(self):
print(“Este es el Estado”);
st =Estado();
st.MostrarPaís();
st.MostrarEstado();
herencia multinivel
Python está hecho de varios objetos, y con la herencia multinivel, existen infinitas posibilidades de reutilizar las funcionalidades de la clase. La herencia multinivel se documenta cada vez que una clase derivada hereda otra clase derivada. No hay límite para la cantidad de clases derivadas que pueden heredar las funcionalidades, y es por eso que la herencia multinivel ayuda a mejorar la reutilización en Python.
Aquí hay un ejemplo de herencia multinivel.
clase de animales:
def hablar (uno mismo):
imprimir ("Hablando de animales")
#La clase hijo Perro hereda la clase base Animal
clase Perro (Animal):
def ladrar (uno mismo):
imprimir ("perro ladrando")
#La clase secundaria Dogchild hereda otra clase secundaria Dog
clase PerroNiño(Perro):
def comer (uno mismo):
imprimir(“Comiendo pan…”)
d = NiñoPerro()
d.ladrar()
d.hablar()
d.comer()
Herencia múltiple
Python permite a los desarrolladores heredar múltiples funcionalidades y propiedades de diferentes clases base en una sola clase derivada. Es sobre todo una gran característica, ya que puede permitirle heredar múltiples dependencias sin herramientas ni codificación extensas.
Veamos un ejemplo de herencias múltiples.
clase Cálculo1:
def Sumatoria(self,a,b):
devuelve a+b;
clase Cálculo2:
def Multiplicación(self,a,b):
devuelve a*b;
clase derivada (cálculo 1, cálculo 2):
def Divide(self,a,b):
volver a/b;
d = Derivado()
imprimir (d. Suma (10,20))
print(d.Multiplicación(10,20))
imprimir(d.Dividir(10,20))
Consulta: Cómo convertir voz a texto con Python

¿Cómo identificar una Clase Derivada?
Python viene con una función issubclass() incorporada que ayuda a los desarrolladores a verificar si una clase es derivada o una clase base. Una vez que ejecuta esta función, regresa con un resultado "Verdadero" para la subclase o una clase Derivada, mientras que Falso para la clase Base.
Un desarrollador puede verificar la clase a través de este ejemplo.
clase miEdad:
edad = 36
clase miObj(miEdad):
nombre = “Juan”
edad = miEdad
x = essubclase(miObj, miEdad)
¿Cómo crear una jerarquía de clases en Python?
La herencia en Python ayuda a crear jerarquías de clases. Todas las clases relativas compartirán una interfaz común para comunicarse entre sí. Una clase Base define la interfaz. Las clases derivadas pueden proporcionar una especialización específica de la interfaz. Aquí, estamos explorando un modelo de recursos humanos para demostrar la jerarquía de clases.
El sistema de recursos humanos procesará la nómina de los diferentes trabajadores de la empresa; cada trabajador se identifica a través de un DNI y tiene diferentes puestos de nómina a calcular.
Primero vamos a crear una clase de nómina como el objeto "Base".
# En hr.py
clase Sistema de Nómina:
def calcular_nómina(uno mismo, trabajadores):
print('Calculando Nómina')
imprimir('===================')
para trabajador en trabajadores:
print(f'Nómina para: {trabajador.id} – {trabajador.nombre}')
print(f'- Importe del cheque: {worker.calculate_payroll()}')
imprimir(")
PayrollSystem ejecuta un método .calculate_payroll() que recopila la información del trabajador, imprime su identificación, nombre y verifica el monto de la nómina . Ahora, ejecuta un trabajador de clase base que aborda la interfaz estándar para cada tipo de trabajador:
# En hr.py
trabajador de clase:
def __init__(auto, id, nombre):
self.id = id
self.nombre = nombre
La creación de una clase base Trabajador para todos los tipos de trabajadores de la empresa facilita la jerarquía para el sistema de recursos humanos. A cada trabajador se le asigna un nombre y una identificación. El sistema de recursos humanos requiere que el trabajador proporcione datos sobre su salario semanal a través de la interfaz .calculate_payroll(). La ejecución de esta interfaz puede diferir según el tipo de trabajador.
Debe leer: preguntas de la entrevista de Python
Conclusión
Aquí, aprendimos a crear diferentes clases de Python, establecer relaciones entre ellas e incluso establecer una jerarquía de clases. Pero la herencia en Python no se limita a las funcionalidades mencionadas aquí.
Certificación avanzada en aprendizaje automático e inteligencia artificial : IIT madras, una de las mejores instituciones educativas de la India, se ha asociado con upGrad para realizar un curso avanzado sobre aprendizaje automático para que las personas tengan un conocimiento completo del aprendizaje automático con este curso.
Si tiene curiosidad por aprender sobre ciencia de datos, consulte el Programa ejecutivo PG en ciencia de datos de IIIT-B y upGrad, creado para profesionales que trabajan y ofrece más de 10 estudios de casos y proyectos, talleres prácticos, tutoría con expertos de la industria, 1 -on-1 con mentores de la industria, más de 400 horas de aprendizaje y asistencia laboral con las mejores empresas.
¿Por qué la herencia es importante en Python?
La herencia se refiere al proceso de pasar las propiedades de una clase principal a una clase secundaria. Es un concepto de programación orientada a objetos (POO) y es importante en Python. Esto se debe a que la herencia brinda reutilización del código, lo que significa que en lugar de escribir el mismo código una y otra vez, podemos heredar los atributos que necesitamos en una clase secundaria. También es fácil de entender e implementar, ya que representa una relación del mundo real entre las clases principal y secundaria. Tiene un carácter transitivo. Debido a que todas las clases secundarias heredan propiedades de sus padres, cualquier subclase utilizará igualmente las funcionalidades de la clase principal.
¿Es necesaria la herencia al aprender Python?
Sí, aprender la herencia es necesario mientras se aprende Python. Las aplicaciones masivas de python requieren un aumento en el número de programadores de python en el mercado actual. Este aumento ha llevado a un aumento en la cantidad de personas que aprenden Python. El lenguaje de programación Python es rico en nociones como la herencia. Uno de los conceptos esenciales en este lenguaje de programación orientado a objetos es la herencia. Como la herencia permite la reutilización del código, la legibilidad y la transición de propiedades, es imperativo aprenderlo mientras se aprende Python. La herencia ayuda a crear un código preciso y eficiente.
En Python, ¿qué tipos de herencia no son compatibles?
Python permite todas las formas de herencia, incluidas las herencias múltiples, a diferencia de otros lenguajes de programación orientados a objetos. Es posible construir nuevas clases a partir de las preexistentes utilizando el concepto de herencia. Esto facilita la reutilización del código. Los métodos especificados en la clase principal también se utilizan en la clase secundaria. Si bien C++ también permite este tipo de herencia, carece de la metodología avanzada y bien diseñada de Python. Python incluso ofrece herencia híbrida, lo que nos permite implementar muchos tipos de herencia en una sola pieza de código. Debido a que la reutilización del código es una fortaleza de la herencia, es útil en una amplia gama de aplicaciones cuando se trabaja con Python.