13.2 Accès aux attributs
Objectifs d'apprentissage
À la fin de cette section, vous devriez être en mesure de :
- Implémenter une sous-classe qui accède aux attributs hérités de la superclasse.
- Écrire le
__init__()d'une sous-classe qui hérite des attributs d'instance de la superclasse et crée de nouveaux attributs d'instance.
Création d'une sous-classe simple
Les sous-classes ont accès aux attributs hérités de la superclasse. Lorsque le __init__() de la sous-classe n'est pas explicitement défini, la méthode __init__() de la superclasse est appelée. L'accès aux deux types d'attributs utilise la même syntaxe.
Concepts en pratique
Utiliser des sous-classes simples
Utiliser __init__() pour créer et hériter des attributs d'instance
Un programmeur souhaite souvent qu'une sous-classe possède de nouveaux attributs d'instance ainsi que ceux hérités de la superclasse. Définir explicitement __init__() dans une sous-classe consiste à initialiser ses nouveaux attributs d'instance ainsi que ceux hérités de la superclasse.
Concepts en pratique
Accéder aux attributs d'une sous-classe
Considérez l'exemple de code Employee et Developer :
class Employee:
count = 0
def __init__(self):
Employee.count += 1
self.e_id = Employee.count
self.hire_year = 2023
def emp_display(self):
print(f"Employee {self.e_id} hired in {self.hire_year}")
class Developer(Employee):
def __init__(self):
Employee.count += 1
self.e_id = Employee.count
self.hire_year = 2023
self.lang_xp = ["Python", "C++", "Java"]
def dev_display(self):
print(f"Proficient in {self.lang_xp}")
emp_1 = Employee()
dev_1 = Developer()
À vous d'essayer
Créer une sous-classe avec un attribut d'instance
Étant donné une classe Dessert, créez une classe Cupcake, héritée de Dessert. Méthodes de la classe Cupcake :
__init__(self): initialise l'attribut d'instance hérité ingredients avec ["butter", "sugar", "eggs", "flour"], et initialise l'attribut d'instance frosting avec "buttercream"display(self): affiche les ingrédients et le glaçage d'un cupcake
Appelez ensuite la méthode display() sur un nouvel objet Cupcake. La sortie doit correspondre à :
Made with ["butter", "sugar", "eggs", "flour"] and topped with buttercream frosting