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
Libérer: 2024-11-27 04:04:10
original
558 Les gens l'ont consulté

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)
Copier après la connexion

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()
Copier après la connexion

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal