Maison >développement back-end >Tutoriel Python >Comment appeler des méthodes de classe parent dans l'héritage Python ?

Comment appeler des méthodes de classe parent dans l'héritage Python ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-27 04:04:10559parcourir

How Do I Call Parent Class Methods in Python Inheritance?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn