Maison >développement back-end >Tutoriel Python >Comment appeler le super constructeur en Python ?

Comment appeler le super constructeur en Python ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-17 08:43:03381parcourir

How Do You Call the Super Constructor in Python?

Invoquer le super constructeur en Python : percer le mystère

En programmation orientée objet, il est courant d'hériter des classes de base pour étendre leurs fonctionnalités. En Python, l'appel du super constructeur, qui initialise la classe de base, est primordial pour un héritage de classe transparent.

Alors que dans d'autres langages, le super constructeur est invoqué implicitement, Python nécessite une invocation explicite. Contrairement à l’attente populaire selon laquelle le super(soi) suffirait, ce n’est pas le cas. Explorons la bonne approche.

Invoquer Super dans Python 3

Python 3 introduit une méthode simplifiée d'appel du super constructeur :

class A(object):
    def __init__(self):
        print("world")

class B(A):
    def __init__(self):
        print("hello")
        super().__init__()  # Python 3 syntax

Ici, super() suivi by __init__() invoque explicitement le super constructeur.

Invoquer Super dans Python 2

Dans Python 2, une syntaxe légèrement plus détaillée est requise :

class A(object):
    def __init__(self):
        print "world"

class B(A):
    def __init__(self):
        print "hello"
        super(B, self).__init__()  # Python 2 syntax

Ici, super reçoit le nom de classe B et self pour référencer l'instance actuelle.

Conclusion

Maîtriser l'invocation appropriée du super constructeur est crucial en Python. Comprendre la différence entre sa syntaxe dans Python 2 et 3 garantit un héritage transparent et évite tout comportement inattendu dans votre code.

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