Pitón

Herencia de Python

Herencia de Python

Python es un lenguaje de programación orientado a objetos. En un lenguaje de programación orientado a objetos, creamos las clases y realizamos la funcionalidad deseada. La herencia es la característica fundamental de los lenguajes de programación orientados a objetos. La herencia se puede definir como la capacidad de una clase para heredar todas las funciones y propiedades de otra clase. La herencia esencialmente permite extender las propiedades de una clase existente. La herencia se aprovecha con los dos conceptos principales:

  1. Clase principal o clase base
  2. Clase secundaria o clase derivada

La clase padre es la clase que permite heredar otras clases de. También se llama Clase Base. La clase secundaria o clase derivada es la clase que hereda todas las propiedades y funciones de otra clase. La herencia promueve varios beneficios, yo.mi., es la representación del fenómeno de la herencia del mundo real. Fomenta la reutilización del código. Si una función está definida en una clase, la otra clase puede heredar esta clase y usar todas las funciones existentes. No es necesario escribir el mismo código una y otra vez para realizar tareas similares. La herencia se aplica a múltiples niveles. Por ejemplo, si la clase B se hereda de A y la clase C se hereda de la clase B, entonces la clase C tiene todas las propiedades de la clase B y también la clase A. La sintaxis de la herencia es la siguiente:

Clase ParentClass:
Detalles de implementación de la clase padre
clase ChildClass:
Detalles de implementación de la clase secundaria

Aunque la clase secundaria tiene acceso a todas las características y funciones de la clase principal, también puede agregar sus nuevas características y funciones.

Este artículo describe y cubre todos los aspectos de la herencia de Python.

Implementación de herencia en Python

La herencia se puede aplicar en numerosas situaciones. Supongamos que está creando un sistema de software para una universidad. Puede estar compuesto por múltiples partes interesadas como estudiantes, profesores, personal, etc. Entonces, cada persona tiene un nombre, edad, correo electrónico y otras propiedades comunes. No es necesario declarar todas las propiedades en cada clase por separado. Podemos hacer una clase de persona, y todas las clases de las partes interesadas pueden heredar todas las propiedades y funciones comunes de la clase de persona. En este caso, no es necesario escribir las propiedades comunes en cada clase una y otra vez. Del mismo modo, podemos considerar una clase animal. Hay cientos de tipos de animales en este mundo. Todos los animales comen, duermen y también tienen algunas especies. Este concepto también se puede implementar usando herencia.

Consideremos al animal como una superclase e implementemos la herencia. En el siguiente ejemplo, hemos creado una clase de animal. La clase animal es la clase padre. Además, hemos creado las clases Perro y Gato que heredan las propiedades y funciones de la clase animal. La palabra clave pass se usa en la clase secundaria, cuando no tenemos que implementar ninguna funcionalidad extendida en la clase secundaria.

#creating parent class
clase Animal:
# función de inicialización
#initilization el nombre del animal y el tipo de especie
def __init __ (yo, nombre, tipo_especie):
uno mismo.nombre = nombre
uno mismo.tipo_especie = tipo_especie
# una función para imprimir el nombre del animal
def nombre de impresión (self):
print ("El nombre del animal es:", self.nombre)
# una función para imprimir el tipo de especie animal
def printspecie (yo):
print ("El tipo de especie es:", self.tipo_especie)
#creando la clase del perro como clase infantil de la clase animal
clase Perro (Animal):
# sin extensión ni modificación
aprobar
#Now dog class tiene acceso a todas las funciones y propiedades de la clase animal
#creando el objeto de clase de perro
dogObj = Perro ("Perro", "carnívoro")
dogObj.printname ()
dogObj.printpecie ()
#creando la clase de gatos como una clase infantil de la clase de animales
clase Cat (Animal):
#la función de inicialización de la clase cat
def __init __ (yo):
# llamar y usar la función de inicialización de la clase animal
Animal.__init __ (yo, "gato", "mamífero carnívoro")
#Now cat class tiene acceso a todas las funciones y propiedades de la clase animal
#creando el objeto de clase cat
catObj = Gato ()
catObj.printname ()
catObj.printpecie ()

Producción

La "Animal.__init __ (yo, "gato", "mamífero carnívoro") " llamada es la función de inicialización de la clase Animal.

La función super ()

Python proporciona una función super () incorporada para heredar todas las propiedades y funciones de la clase principal. Cuando usamos la función super (), entonces no es necesario mencionar el nombre de la clase padre como lo hicimos en "Animal.__init __ (yo, "gato", "mamífero carnívoro") " pero la función super () apunta automáticamente a la clase principal. Usemos la superfunción.

#creating parent class
clase Animal:
# función de inicialización
#initilization el nombre del animal y el tipo de especie
def __init __ (yo, nombre, tipo_especie):
uno mismo.nombre = nombre
uno mismo.tipo_especie = tipo_especie
# una función para imprimir el nombre del animal
def nombre de impresión (self):
print ("El nombre del animal es:", self.nombre)
# una función para imprimir el tipo de especie animal
def printspecie (yo):
print ("El tipo de especie es:", self.tipo_especie)
#creando la clase del perro como clase infantil de la clase animal
clase Perro (Animal):
#utilizando la función super ()
def __init __ (yo, nombre, tipo_especie):
súper().__init __ (nombre, tipo_especie)
#Now dog class tiene acceso a todas las funciones y propiedades de la clase animal
#creando el objeto de clase de perro
dogObj = Perro ("Perro", "carnívoro")
dogObj.printname ()
dogObj.printpecie ()
#creando la clase de gatos como una clase infantil de la clase de animales
clase Cat (Animal):
#la función de inicialización de la clase cat
#utilizando la función super ()
def __init __ (yo, nombre, tipo_especie):
súper().__init __ (nombre, tipo_especie)
#Now cat class tiene acceso a todas las funciones y propiedades de la clase animal
#creando el objeto de clase cat
catObj = Cat ("gato", "mamífero carnívoro")
catObj.printname ()
catObj.printpecie ()

Producción

Ahora agreguemos algunas funcionalidades más en las clases secundarias. Cada clase hereda las propiedades y funciones comunes de la clase principal, pero la clase secundaria puede tener alguna clase adicional destinada a esta clase en particular. Ahora creemos algunas propiedades y funciones adicionales en la clase perro y gato.

#creating parent class
clase Animal:
# función de inicialización
#initilization el nombre del animal y el tipo de especie
def __init __ (yo, nombre, tipo_especie):
uno mismo.nombre = nombre
uno mismo.tipo_especie = tipo_especie
# una función para imprimir el nombre del animal
def nombre de impresión (self):
print ("El nombre del animal es:", self.nombre)
# una función para imprimir el tipo de especie animal
def printspecie (yo):
print ("El tipo de especie es:", self.tipo_especie)
#creando la clase del perro como clase infantil de la clase animal
clase Perro (Animal):
#utilizando la función super ()
#pet name es una funcionalidad recién agregada
def __init __ (self, name, specie_type, pet_name):
súper().__init __ (nombre, tipo_especie)
uno mismo.pet_name = pet_name
#creando una nueva función
def printpetname (self):
print ("El nombre de la mascota es:", self.nombre de mascota)
#Now dog class tiene acceso a todas las funciones y propiedades de la clase animal
#creando el objeto de clase de perro
dogObj = Perro ("Perro", "carnívoro", "Max")
dogObj.printname ()
dogObj.printpecie ()
dogObj.printpetname ()
#creando la clase de gatos como clase infantil de la clase de animales
clase Cat (Animal):
#la función de inicialización de la clase cat
#utilizando la función super ()
#adding food y pet_name properties
def __init __ (yo, nombre, tipo_especie, comida, nombre_precia):
súper().__init __ (nombre, tipo_especie)
uno mismo.comida = comida
uno mismo.pet_name = pet_name
#nueva función para acceder a la información alimentaria
def printfood (yo mismo):
print ("Al gato le gusta:", self.comida)
#nueva función para el nombre de la mascota
def printpetname (self):
print ("El nombre de la mascota es:", self.nombre de mascota)
#Now cat class tiene acceso a todas las funciones y propiedades de la clase animal
#creando el objeto de clase cat
catObj = Cat ("gato", "mamífero carnívoro", "Galleta", "Margarita")
catObj.printname ()
catObj.printpecie ()

Producción

Las funciones que prevalecen

La función que prevalece es el concepto importante en la herencia. Una función se denomina función anulada si el nombre de la función es el mismo en las clases principal y secundaria, pero la implementación o funcionalidad de la función es diferente en cada clase. Veamos el ejemplo de función anulada en la clase Animal. En el ejemplo que se muestra a continuación, también tenemos una función de comer en las clases de animales y en sus clases secundarias (Perro y Gato). El nombre de la función es el mismo en las clases pero la implementación es diferente.

#creating parent class
clase Animal:
def comer (yo):
print ("Todos los animales comen comida")
#creating object
animalObj = Animal ()
# función de llamada
animalObj.comer()
#creating dog class
clase Perro (Animal):
def comer (yo):
print ("El perro come carne")
#creating object
dogObj = Perro ()
# función de llamada
dogObj.comer()
clase Cat (Animal):
def comer (yo):
print ("El gato come galletas y algo de comida especial")
#creating object
catObj = Gato ()
# función de llamada
catObj.comer()

Producción

Conclusión

La herencia es uno de los conceptos fundamentales de los lenguajes de programación orientados a objetos. Al usar la herencia, creamos las clases secundarias que heredan todas las funciones y propiedades de la clase principal. La herencia promueve la reutilización del código. Este artículo explica la herencia en Python con ejemplos.

Cómo usar Xdotool para estimular los clics del mouse y las pulsaciones de teclas en Linux
Xdotool es una herramienta de línea de comandos gratuita y de código abierto para simular clics del mouse y pulsaciones de teclas. Este artículo cubri...
Los 5 mejores productos ergonómicos de mouse de computadora para Linux
¿El uso prolongado de la computadora causa dolor en la muñeca o los dedos?? ¿Sufre de rigidez en las articulaciones y constantemente tiene que dar la ...
Cómo cambiar la configuración del mouse y el panel táctil con Xinput en Linux
La mayoría de las distribuciones de Linux se envían con la biblioteca "libinput" de forma predeterminada para manejar eventos de entrada en un sistema...