Méthode arrivée avec Python 3.6 pour personnaliser la création de sous-classes. Cette méthode est appelée automatiquement quand une sous classes est crées.
- Personnaliser le comportement de l'héritage
- Ajouter des fonctions aux sous-classes
class Animal:
# Cette méthode est appelée automatiquement quand une classe hérite de Animal
def __init_subclass__(cls, cri="", **kwargs):
super().__init_subclass__(**kwargs)
# On donne automatiquement une voix à chaque animal
cls.cri = cri # Attribut de classe sera créé pour chaque classe héritant de Animal
# On définit d'abord la fonction qui deviendra une méthode
def faire_du_bruit(self):
return f"Je fais {self.cri} !"
cls.faire_du_bruit = faire_du_bruit # La fonction devient une méthode pour chaque classe héritant de Animal
# On crée différents animaux, chacun avec son cri
class Chien(Animal, cri="wouf"):
pass
class Chat(Animal, cri="miaou"):
pass
# Maintenant on peut créer et utiliser nos animaux
mon_chien = Chien()
print(mon_chien.faire_du_bruit()) # Affiche : "Je fais wouf !"
mon_chat = Chat()
print(mon_chat.faire_du_bruit()) # Affiche : "Je fais miaou !"