CoursDataInformatique

cours python PDF : python orienté objet et l’héritage

Ce cours python traite la notion de l'héritage. 

Télécharger un cours python PDF en bas de la page

Il n’y a pas de langage de programmation orienté objet qui serait utiliser s’il ne respecte pas l’héritage. L’héritage a été conçu en 1969 pour Simula. Python soutient l’héritage ainsi que les héritages multiples également. En règle générale, l’héritage est le composant permettant d’obtenir de nouvelles classes à partir des classes existantes. En faisant cela, nous obtenons un ordre hiérarchique des classes. Dans de nombreux langages de programmation orientée objet basés sur des classes, un objet créé par héritage (un « objet enfant ») gagne tous, – cependant, il existe des exemptions dans certains langages de programmation – des propriétés et des pratiques de l’objet parent.

TROUVER PLUS DE COURS PYTHON SUR LA PAGE DES COURS PYTHON

https://lecoursgratuit.com/cours-python-gratuit/
Tutoriel Python : notion d'héritage

cours python : Notion d’héritage

Cours Python : l’importance de l’héritage

L’héritage permet aux ingénieurs logiciels de créer des classes basées sur des classes existantes, ce qui permet à une classe créée par héritage d’acquérir les propriétés et les techniques de la classe parent. Cela implique que l’héritage maintient la réutilisabilité du code. Les méthodes ou en règle générale le produit acquis par une sous-catégorie sont considérés comme réutilisés dans la sous-catégorie. Les relations d’éléments ou de classes par héritage conduisent à un graphe coordonné.

Cours python : qu’est ce qu’une classe ?

La classe à partir de laquelle une classe acquiert est appelée parent ou superclasse. Une classe qui acquiert d’une superclasse est connue sous le nom de sous-classe, également appelée classe héritière ou classe enfant. Les superclasses sont parfois aussi appelées précurseurs. Il existe diverses connexions hiérarchiques entre les classes. C’est comme des connexions ou des ordres que nous connaissons de la réalité. Pensez aux véhicules, par exemple. Les vélos, les véhicules, les transports et les camions sont des véhicules. Les camionnettes, les fourgonnettes, les véhicules de sport, les cabriolets et les véhicules de legs sont tous des véhicules et en étant des véhicules, ce sont aussi des véhicules. Nous pourrions effectuer une classe de véhicule en Python, qui peut avoir des stratégies comme accélérer et freiner. Les véhicules, les autobus et les camions et les vélos peuvent être exécutés en tant que sous-classes qui acquerront ces techniques à partir de véhicules.

cours python : qu’est ce que l’héritage en langage python 

L’héritage est la capacité d’une classe à déduire ou à acquérir des propriétés d’une autre classe. Les avantages de l’héritage sont :

Il donne la réutilisabilité d’un code. Il n’y a aucun but à composer un code similaire encore et encore. De même, cela nous permet d’ajouter plus d’éléments à une classe sans la changer.

Il est transitif, ce qui implique qu’en supposant que la classe B acquiert d’une autre classe A, chacune des sous-classes de B acquérirait naturellement de la classe A.

Un élément de langage ne mériterait pas le nom de « classe » sans prendre en charge l’héritage. La structure du langage pour une définition de classe déterminée ressemble à ceci :


classe DerivedClassName(BaseClassName) :

<instruction-1>

.

.

<instruction-N>

cours python : exemple de code

Le nom BaseClassName doit être caractérisé dans une extension contenant la définition de classe déterminée. Au lieu d’un nom de classe de base, d’autres articulations subjectives sont également autorisées. Cela peut être utile, par exemple, lorsque la classe de base est caractérisée dans un autre module :

class DerivedClassName(nom_mod.NomClasseBase) :

L’exécution d’une définition de classe déterminée reste équivalente à celle d’une classe de base. Au moment où l’objet de classe est développé, la classe de base est rappelée. Ceci est utilisé pour régler les références caractéristiques : si une propriété mentionnée n’est pas trouvée dans la classe, la recherche continue de jeter un coup d’œil dans la classe de base. Cette norme est appliquée récursivement si la classe de base elle-même est obtenue à partir d’une autre classe.

Il n’y a rien d’extraordinaire en ce qui concerne le lancement de classes dérivées : DerivedClassName() fait une autre occurrence de la classe.

Cours python : Les références de méthode sont réglées comme suit :

la caractéristique de classe correspondante est examinée,
glisser vers le bas de la chaîne des classes de base si fondamentales, et
la référence de stratégie est légitime si cela donne un objet de capacité.
Les classes dérivées peuvent remplacer les stratégies de leurs classes de base. Étant donné que les méthodes n’ont pas d’avantages exceptionnels lors de l’appel de stratégies différentes pour un objet similaire, une méthode pour une classe de base qui appelle une méthode supplémentaire caractérisée dans une classe de base similaire peut finir par envisager une stratégie pour une classe déterminée qui l’abroge. (Pour les développeurs C++ : toutes les stratégies en Python sont adéquatement virtuelles.)

On peut dire qu’une méthode de substitution dans une classe dérivée doit être étendue au lieu de supplanter essentiellement la technique de la classe de base pour un nom similaire. Il existe une méthode de base pour appeler directement la méthode de la classe de base : appelez simplement BaseClassName.method name(self, arguments)

C’est aussi de temps en temps utile pour les clients. (Notez que cela fonctionne peut-être si la classe de base est ouverte en tant que BaseClassName dans l’extension mondiale.)

Les classes dérivées

Il n’y a rien d’extraordinaire en ce qui concerne le lancement de classes dérivées : DerivedClassName() fait une autre occurrence de la classe. Les références de méthode sont réglées comme suit :

la caractéristique de classe correspondante est examinée, glisser vers le bas de la chaîne des classes de base si fondamentales, et la référence de stratégie est légitime si cela donne un objet de capacité.

C’est aussi de temps en temps utile pour les clients. (Notez que cela fonctionne peut-être si la classe de base est ouverte en tant que BaseClassName dans l’extension mondiale.)

cours python : le langage a deux fonctions intégrées qui fonctionnent avec l’héritage :

  • Utilisez instance() pour jeter un œil au tri d’une occasion : instance(obj, int) sera True juste au cas où obj.class est un entier ou une classe obtenue à partir d’int.
  • Utilisez issubclass() pour vérifier l’héritage de classe : issubclass(bool, int) est True puisque bool est une sous-classe de int. Néanmoins, issubclass(float, int) est False puisque la côte n’est pas une sous-classe de int.

Cours python : Héritage multiple


Python prend également en charge un type d’héritage multiple. Une définition de classe avec diverses classes de base ressemble à ceci :

classe DerivedClassName(BaseClassName) :
<instruction-1>
.
.
.

<instruction-N>

     cours python : exemple de code

Dans la plupart des cas, dans les causes les plus courantes, vous pouvez considérer la quête d’attributs acquis à partir d’une classe parente comme la profondeur d’abord, de gauche à droite, sans regarder deux fois dans une classe similaire où il y a un croisement dans le système progressif. De la même manière, lorsqu’un attribut n’est pas présent dans DerivedClassName, il le recherche dans Base1, puis, à ce stade (récursivement) dans les classes de base de Base1, et au cas où il n’y serait pas trouvé, il a été recherché dans Base2, etc.

En effet, c’est un peu plus compliqué que cela ; la demande d’objectif de stratégie change puissamment pour faciliter les appels agréables à super(). Cette méthodologie est connue dans d’autres langages à héritages multiples sous le nom de technique d’appel suivant et est plus impressionnante que le super appel trouvé dans les langages à héritage unique.

-comprendre la notion de l’héritage –

L’ordre dynamique est vital car toutes les instances d’héritage multiple affichent au moins une connexion en diamant précieux (où quelque chose comme l’une des classes parentes peut être atteint de plusieurs manières à partir de la classe la plus basse). Par exemple, toutes les classes acquièrent à partir de l’objet, donc toute instance d’héritages multiples donne plus d’une façon d’arriver à l’objet. Pour empêcher les classes de base d’être utilisées plus d’une fois, l’algorithme dynamique linéarise la demande d’enquête de manière à protéger la demande de gauche à droite indiquée dans chaque classe, qui appelle chaque parent une seule fois, et qui est monotone ( impliquant qu’une classe peut être sous-classée sans influencer la demande prioritaire de ses utilisateurs). Prises ensemble, ces propriétés permettent de planifier des classes fiables et extensibles avec des héritages multiples.

En python, une classe dérivée peut acquérir la classe de base simplement en référençant la base dans la section après le nom de la classe dérivée. Pensez à la structure de langage qui l’accompagne pour acquérir une classe de base dans la classe dérivée.

Syntaxe:

classe déterminée classe (classe de base):

class determined class(base class):

  <class-suite> 

Une classe peut acquérir différentes classes en référençant chacune d’entre elles à l’intérieur de la section. Pensez à la structure linguistique qui l’accompagne.

Syntaxe:

class determine class(<base class 1>, <base class 2>, ….. <base class n>): 

<class-suite>

Example 1 

class species:

def speak(self):

print(“way of speaking”)

#child class Dog acquires the base class species

class Dog(species):

def bark(self):

print(“dog woofing”)

d = Dog()

d.bark()

d.speak()

Output:

dog barking

way of speaking

                             cours python : exemple de code

Héritage Python multi-niveaux


L’héritage à plusieurs niveaux est concevable en python comme d’autres langages POO. L’héritage à plusieurs niveaux est déposé lorsqu’une classe dérivée acquiert une classe dérivée supplémentaire. Il n’y a aucune restriction sur le nombre de niveaux jusqu’auquel, l’héritage multi-niveaux est déposé en python. La syntaxe de l’héritage multi-niveaux est donnée ci-dessous.


class Base1:

class Base2:

.

.

.

class BaseN:

class Derived(Base1, Base2, …… BaseN):
<class-suite>

Example:

class Calc1: 

def Summation(self,a,b): 

return a+b; 

class Calc2: 

def Multiplication(self,a,b): 

return a*b; 

class Derived(Calc1,Calc2): 

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)) 

Output:

30

200

0.5

La méthode issubclass(sub,sup)

La méthode issubclass(sub, sup) est utilisée pour véritablement examiner les connexions entre les classes prédéterminées. Elle renvoie True si la première classe est la sous-classe de la deuxième classe, et False dans tous les cas. Comprenons cela avec l’exemple mentionné ci-dessous.

Exemple

class Calc1: 

def Summation(self,x,y): 

return x+y; 

class Calc2: 

def Multiplication(self,x,y): 

return x*y; 

class Derived(Calc1,Calc2): 

def Divide(self,x,y): 

return x/y; 

d = Derived() 

print(isinstance(d,Derived))

Output:

True

Par conséquent, l’héritage nous permet de caractériser une classe qui acquiert chacune des méthodes et propriétés d’une autre classe. La classe parent est la classe à partir de laquelle l’acquisition est, en outre appelée la classe de base. La classe enfant est la classe qui acquiert d’une autre classe, également appelée classe dérivée.

Cours python en PDF téléchargeable :

Trouver aussi des excercices python

Ce cours python traite la notion de l’héritage. Télécharger un cours python PDF en bas de la page Il n’y

Les derniers cours sur Python et Excel

Autres articles

Créer une Carte de Positionnement Concurrentiel ➤...
Une carte de positionnement concurrentiel est un outil visuel qui...
Read more
Épreuve E1 BTS Communication Corrigé : Culture...
L'épreuve de Culture Générale et Expression dans le cadre du...
Read more
Tableau d’amortissement d’un emprunt : Exercices corrigés
Fiche Pratique : Tableau d’Amortissement d’un Emprunt1. Définition du Tableau...
Read more

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *