La herencia es un aspecto importante del paradigma orientado a objetos. La herencia proporciona reutilización del código al programa porque podemos usar una clase existente para crear una nueva clase en lugar de crearla desde cero.
En herencia, la clase secundaria adquiere las propiedades y puede acceder a todos los miembros de datos y funciones definidos en la clase principal. Una clase secundaria también puede proporcionar su implementación específica a las funciones de la clase principal. En esta sección del tutorial, discutiremos la herencia en detalle.
cómo convertir una cadena a un carácter
En Python, una clase derivada puede heredar la clase base simplemente mencionando la base entre corchetes después del nombre de la clase derivada. Considere la siguiente sintaxis para heredar una clase base en la clase derivada.
Sintaxis
class derived-class(base class):
Una clase puede heredar varias clases mencionándolas todas dentro del paréntesis. Considere la siguiente sintaxis.
Sintaxis
class derive-class(, , ..... ):
Ejemplo 1
class Animal: def speak(self): print('Animal Speaking') #child class Dog inherits the base class Animal class Dog(Animal): def bark(self): print('dog barking') d = Dog() d.bark() d.speak()
Producción:
dog barking Animal Speaking
Herencia multinivel de Python
La herencia multinivel es posible en Python como otros lenguajes orientados a objetos. La herencia multinivel se archiva cuando una clase derivada hereda otra clase derivada. No hay límite en la cantidad de niveles hasta los cuales la herencia multinivel se archiva en Python.
La sintaxis de la herencia multinivel se proporciona a continuación.
Sintaxis
class class1: class class2(class1): class class3(class2): . .
Ejemplo
class Animal: def speak(self): print('Animal Speaking') #The child class Dog inherits the base class Animal class Dog(Animal): def bark(self): print('dog barking') #The child class Dogchild inherits another child class Dog class DogChild(Dog): def eat(self): print('Eating bread...') d = DogChild() d.bark() d.speak() d.eat()
Producción:
dog barking Animal Speaking Eating bread...
Herencia múltiple de Python
Python nos brinda la flexibilidad de heredar múltiples clases base en la clase secundaria.
La sintaxis para realizar herencia múltiple se proporciona a continuación.
Sintaxis
class Base1: class Base2: . . . class BaseN: class Derived(Base1, Base2, ...... BaseN):
Ejemplo
class Calculation1: def Summation(self,a,b): return a+b; class Calculation2: def Multiplication(self,a,b): return a*b; class Derived(Calculation1,Calculation2): def Divide(self,a,b): return a/b; d = Derived() print(d.Summation(10,20)) print(d.Multiplication(10,20)) print(d.Divide(10,20))
Producción:
30 200 0.5
El método issubclass(sub,sup)
El método issubclass(sub, sup) se utiliza para verificar las relaciones entre las clases especificadas. Devuelve verdadero si la primera clase es la subclase de la segunda clase y falso en caso contrario.
Considere el siguiente ejemplo.
Ejemplo
class Calculation1: def Summation(self,a,b): return a+b; class Calculation2: def Multiplication(self,a,b): return a*b; class Derived(Calculation1,Calculation2): def Divide(self,a,b): return a/b; d = Derived() print(issubclass(Derived,Calculation2)) print(issubclass(Calculation1,Calculation2))
Producción:
True False
El método isinstance (obj, clase)
El método isinstance() se utiliza para comprobar la relación entre los objetos y las clases. Devuelve verdadero si el primer parámetro, es decir, obj es la instancia del segundo parámetro, es decir, clase.
Considere el siguiente ejemplo.
Ejemplo
class Calculation1: def Summation(self,a,b): return a+b; class Calculation2: def Multiplication(self,a,b): return a*b; class Derived(Calculation1,Calculation2): def Divide(self,a,b): return a/b; d = Derived() print(isinstance(d,Derived))
Producción:
True
Anulación de métodos
Podemos proporcionar alguna implementación específica del método de la clase principal en nuestra clase secundaria. Cuando el método de la clase principal se define en la clase secundaria con alguna implementación específica, entonces el concepto se denomina anulación de método. Es posible que necesitemos realizar una anulación de métodos en el escenario donde se necesita una definición diferente de un método de clase principal en la clase secundaria.
Considere el siguiente ejemplo para realizar la anulación de métodos en Python.
Ejemplo
class Animal: def speak(self): print('speaking') class Dog(Animal): def speak(self): print('Barking') d = Dog() d.speak()
Producción:
Barking
Ejemplo de la vida real de anulación de método
class Bank: def getroi(self): return 10; class SBI(Bank): def getroi(self): return 7; class ICICI(Bank): def getroi(self): return 8; b1 = Bank() b2 = SBI() b3 = ICICI() print('Bank Rate of interest:',b1.getroi()); print('SBI Rate of interest:',b2.getroi()); print('ICICI Rate of interest:',b3.getroi());
Producción:
multiplexor
Bank Rate of interest: 10 SBI Rate of interest: 7 ICICI Rate of interest: 8
Abstracción de datos en Python
La abstracción es un aspecto importante de la programación orientada a objetos. En Python, también podemos ocultar datos agregando el doble guión bajo (___) como prefijo del atributo que se va a ocultar. Después de esto, el atributo no será visible fuera de la clase a través del objeto.
Considere el siguiente ejemplo.
Ejemplo
class Employee: __count = 0; def __init__(self): Employee.__count = Employee.__count+1 def display(self): print('The number of employees',Employee.__count) emp = Employee() emp2 = Employee() try: print(emp.__count) finally: emp.display()
Producción:
The number of employees 2 AttributeError: 'Employee' object has no attribute '__count'