oujood.com

Accéder et appeler les méthodes ou attributs d'une classe parente dans une classe enfant

Accéder et appeler les méthodes ou attributs d'une classe parente dans une classe enfant en utilisant la fonction super() en Python. Tutoriel sur l'utilisation de super() avec des exemples de création de classes parentes et enfants, ainsi que leur utilisation.

chercher |

La fonction super() en Python est une fonction intégrée qui est utilisée pour accéder et appeler les méthodes ou attributs d'une classe parente dans une classe enfant. Cela est souvent utilisé dans l'héritage pour appeler le constructeur ou d'autres méthodes de la classe parente. Voici un tutoriel pas à pas sur l'utilisation de super() en Python :

1. Création d'une classe parente

Exemple :       Copier le code

class Personne:
    def __init__(self, nom, age):
        self.nom = nom
        self.age = age

    def afficher_infos(self):
        print(f"Nom : {self.nom}, Age : {self.age}")

Dans cet exemple, nous avons créé une classe Personne avec un constructeur __init__ qui initialise les attributs nom et age, ainsi qu'une méthode afficher_infos pour afficher les informations de la personne.

2. Création d'une classe enfant

Exemple :       Copier le code

class Etudiant(Personne):
    def __init__(self, nom, age, niveau):
        super().__init__(nom, age)
        self.niveau = niveau

    def afficher_infos(self):
        super().afficher_infos()
        print(f"Niveau : {self.niveau}")

La classe Etudiant est une sous-classe de la classe Personne. Elle utilise super().__init__() dans son constructeur pour appeler le constructeur de la classe parente Personne et initialiser les attributs nom et age. De plus, la méthode afficher_infos de Etudiant utilise super().afficher_infos() pour appeler la méthode afficher_infos de la classe parente et ensuite affiche le niveau de l'étudiant.

3. Utilisation des classes

Exemple :       Copier le code

# Création d'une instance de la classe Personne
personne1 = Personne("Alice", 30)
personne1.afficher_infos()  # Affiche : Nom : Alice, Age : 30

# Création d'une instance de la classe Etudiant
etudiant1 = Etudiant("Bob", 20, "Bac+2")
etudiant1.afficher_infos()
# Affiche :
# Nom : Bob, Age : 20
# Niveau : Bac+2

Explication :

personne1 est une instance de la classe Personne. Lorsque nous appelons afficher_infos() pour personne1, cela affiche le nom et l'âge de cette personne.

etudiant1 est une instance de la classe Etudiant. Lorsque nous appelons afficher_infos() pour etudiant1, cela utilise super().afficher_infos() pour appeler d'abord la méthode afficher_infos de la classe parente (Personne), puis affiche également le niveau de l'étudiant.

C'est ainsi que super() est utilisé pour accéder et appeler les méthodes ou attributs de la classe parente lors de l'héritage en Python.

Exemples d'utilisation de super() en Python

Exemple 1 : Extension de la fonctionnalité d'une méthode parente

Exemple :       Copier le code

class Animal:
    def manger(self):
        print("L'animal mange.")

class Chien(Animal):
    def manger(self):
        super().manger()  # Appel de la méthode manger() de la classe parente Animal
        print("Le chien mange des croquettes et aboie.")

Dans cet exemple, la classe Chien hérite de la classe Animal et redéfinit la méthode manger(). En utilisant super().manger(), le comportement de la méthode manger() de la classe parente Animal est étendu, puis le comportement spécifique au chien est ajouté.

Exemple 2 : Utilisation du constructeur de la classe parente

Exemple :       Copier le code

class Vehicule:
    def __init__(self, marque, annee):
        self.marque = marque
        self.annee = annee

class Voiture(Vehicule):
    def __init__(self, marque, annee, modele):
        super().__init__(marque, annee)  # Appel du constructeur de la classe parente Vehicule
        self.modele = modele

Ici, la classe Voiture hérite de la classe Vehicule et utilise super().__init__() pour appeler le constructeur de la classe parente Vehicule, initialisant ainsi les attributs de base. Ensuite, elle ajoute l'attribut spécifique modele pour représenter le modèle de la voiture.

Ces exemples démontrent comment super() est utilisé pour accéder aux fonctionnalités de la classe parente dans les sous-classes, permettant ainsi une extension ou une personnalisation du comportement sans répéter le code déjà présent dans la classe parente.





Voir aussi nos tutoriel :

HTML5 élément canvas

HTML5 élément canvas Dessiner avec l\rélément canvas

:visited

Ajoute un style à un lien visité

fonction metaphone, metaphone

Calcule la clé metaphone