Maison > développement back-end > Tutoriel Python > Méthodes liées, non liées et statiques en Python : quelle est la différence ?

Méthodes liées, non liées et statiques en Python : quelle est la différence ?

Barbara Streisand
Libérer: 2024-11-17 18:52:02
original
824 Les gens l'ont consulté

Bound, Unbound, and Static Methods in Python: What's the Difference?

Différences entre les méthodes de classe en Python : exploration des méthodes liées, non liées et statiques

En Python, comprendre les distinctions entre les méthodes de classe est crucial pour programmation orientée objet efficace. Parmi les différents types de méthodes de classe, les méthodes liées, non liées et statiques revêtent une importance particulière. Cet article examine leurs principales différences et leur impact sur l'invocation de méthodes en Python.

Méthodes liées

Les méthodes liées sont le type standard de méthode associée à un objet. Lorsqu'un objet est instancié, des méthodes liées sont automatiquement créées pour ses méthodes. Le premier paramètre de la méthode liée représente la référence d'objet sur laquelle la méthode est invoquée. Cela permet d'accéder aux variables d'instance de l'objet et à d'autres méthodes. Dans l'exemple fourni, la fonction method_one est une méthode liée et son invocation nécessite une référence d'objet comme indiqué :

a_test.method_one()
Copier après la connexion

Les méthodes non liées

Les méthodes non liées ne sont pas associé à un objet spécifique. Il leur manque un paramètre self, car ils ne sont pas destinés à fonctionner sur des instances spécifiques. L’appel d’une méthode indépendante nécessite le passage explicite de l’objet comme premier argument. Dans l'exemple d'extrait de code, method_two est une méthode indépendante et son invocation génère une erreur sans aucun argument fourni :

a_test.method_two()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: method_two() takes no arguments (1 given) 
Copier après la connexion

Méthodes statiques

Les méthodes statiques sont similaires aux méthodes non liées dans la mesure où elles ne sont associées à aucun objet spécifique. Cependant, contrairement aux méthodes indépendantes, les méthodes statiques n'acceptent pas de référence d'objet comme paramètre et ne dépendent donc pas de l'état de l'instance. Pour déclarer une méthode statique, un décorateur tel que @staticmethod est utilisé. Ce décorateur informe la métaclasse que la méthode ne doit pas créer de méthodes liées pour la classe.

class Test(object):
    @staticmethod
    def method_two():
        print "Called method two"
Copier après la connexion

Avec une méthode statique, l'invocation est possible à la fois sur les instances d'objet et sur la classe elle-même :

a_test.method_two()
Test.method_two()
Copier après la connexion

En comprenant les différences subtiles entre les méthodes liées, non liées et statiques, les développeurs peuvent exploiter efficacement la puissance des capacités orientées objet de Python, conduisant à des conceptions de code plus robustes et flexibles.

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