L'héritage est un aspect important du paradigme orienté objet. L'héritage permet de réutiliser le code du programme car nous pouvons utiliser une classe existante pour créer une nouvelle classe au lieu de la créer à partir de zéro.
En héritage, la classe enfant acquiert les propriétés et peut accéder à toutes les données membres et fonctions définies dans la classe parent. Une classe enfant peut également fournir son implémentation spécifique aux fonctions de la classe parent. Dans cette section du didacticiel, nous aborderons l’héritage en détail.
date convertir en chaîne
En python, une classe dérivée peut hériter de la classe de base en mentionnant simplement la base entre parenthèses après le nom de la classe dérivée. Considérez la syntaxe suivante pour hériter d’une classe de base dans la classe dérivée.
Syntaxe
class derived-class(base class):
Une classe peut hériter de plusieurs classes en les mentionnant toutes entre parenthèses. Considérez la syntaxe suivante.
Syntaxe
class derive-class(, , ..... ):
Exemple 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()
Sortir:
dog barking Animal Speaking
Héritage multi-niveaux Python
L'héritage multi-niveaux est possible en python comme d'autres langages orientés objet. L'héritage multiniveau est archivé lorsqu'une classe dérivée hérite d'une autre classe dérivée. Il n'y a pas de limite sur le nombre de niveaux jusqu'où l'héritage multi-niveaux est archivé en python.
La syntaxe de l'héritage multi-niveaux est donnée ci-dessous.
Syntaxe
class class1: class class2(class1): class class3(class2): . .
Exemple
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()
Sortir:
dog barking Animal Speaking Eating bread...
PythonHéritage multiple
Python nous offre la flexibilité d'hériter de plusieurs classes de base dans la classe enfant.
La syntaxe pour effectuer un héritage multiple est donnée ci-dessous.
Syntaxe
class Base1: class Base2: . . . class BaseN: class Derived(Base1, Base2, ...... BaseN):
Exemple
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))
Sortir:
30 200 0.5
La méthode issubclass(sub,sup)
La méthode issubclass(sub, sup) est utilisée pour vérifier les relations entre les classes spécifiées. Il renvoie vrai si la première classe est la sous-classe de la deuxième classe, et faux dans le cas contraire.
Considérez l'exemple suivant.
Exemple
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))
Sortir:
True False
La méthode isinstance (obj, classe)
La méthode isinstance() est utilisée pour vérifier la relation entre les objets et les classes. Il renvoie vrai si le premier paramètre, c'est-à-dire obj, est l'instance du deuxième paramètre, c'est-à-dire la classe.
Considérez l'exemple suivant.
Exemple
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))
Sortir:
True
Remplacement de méthode
Nous pouvons fournir une implémentation spécifique de la méthode de classe parent dans notre classe enfant. Lorsque la méthode de la classe parent est définie dans la classe enfant avec une implémentation spécifique, le concept est alors appelé remplacement de méthode. Nous devrons peut-être effectuer un remplacement de méthode dans le scénario où une définition différente d'une méthode de classe parent est nécessaire dans la classe enfant.
Considérez l'exemple suivant pour effectuer le remplacement de méthode en python.
Exemple
class Animal: def speak(self): print('speaking') class Dog(Animal): def speak(self): print('Barking') d = Dog() d.speak()
Sortir:
Barking
Exemple réel de remplacement de méthode
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());
Sortir:
Bank Rate of interest: 10 SBI Rate of interest: 7 ICICI Rate of interest: 8
Abstraction de données en python
L'abstraction est un aspect important de la programmation orientée objet. En python, nous pouvons également masquer des données en ajoutant le double trait de soulignement (___) comme préfixe à l'attribut à masquer. Après cela, l'attribut ne sera plus visible en dehors de la classe via l'objet.
Considérez l'exemple suivant.
Exemple
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()
Sortir:
gzip pour Linux
The number of employees 2 AttributeError: 'Employee' object has no attribute '__count'