Appel des méthodes de classe parent en Python
Le mécanisme d'héritage de Python permet aux classes dérivées d'accéder aux méthodes de classe de base, mais contrairement à Perl ou Java, ce n'est pas le cas. Je ne fournis pas de mot-clé comme "super". Au lieu de cela, vous devez faire explicitement référence à la classe parent.
Exemple :
Considérez l'exemple suivant dans lequel la classe Bar étend la classe Foo :
class Foo: def frotz(self): return "Bamf" class Bar(Foo): def frotz(self): # Attempt to explicitly call the parent class 'frotz' method return Foo.frotz(self)
Cette approche nécessite de spécifier explicitement la classe parent, ce qui la rend peu pratique pour les hiérarchies.
Solution : Utilisation de la fonction 'super()'
Python 2.2 et versions ultérieures ont introduit la fonction super(), qui fournit une solution plus élégante :
class Bar(Foo): def frotz(self): # Now calling 'frotz' using the 'super()' function return super().frotz()
La fonction super() détermine intelligemment la classe parent dont hériter, en fonction du contexte dans la classe dérivée. Cela élimine le besoin de spécifier explicitement la classe parent.
Pour Python < 3 :
Cependant, pour les versions de Python antérieures à 3, vous devez explicitement choisir d'utiliser des classes de nouveau style :
class Foo(object): def baz(self): pass class Bar(Foo): def baz(self, arg): return super(Bar, self).baz(arg) # Explicitly specifying 'Bar' as parent
La classe de base d'objet est utilisée pour activer de nouvelles classes. syntaxe de classe de style.
Ainsi, en Python, appeler des méthodes de classe parent à partir de classes dérivées est possible en utilisant la fonction 'super()' (de préférence) ou en référençant explicitement le parent classe (nécessaire uniquement pour Python < 3).
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!