En Python, la distinction entre les méthodes liées, non liées et statiques est cruciale pour une conception de classe efficace.
Contrairement à la plupart des autres langages orientés objet, les méthodes de classe Python ne sont pas statiques par défaut. Lorsqu'une instance de classe appelle une fonction membre, elle est traduite en un appel à la méthode indépendante avec l'instance comme premier argument. Par exemple, considérons le code suivant :
class Test(object): def method_one(self): print "Called method_one"
L'appel de method_one sur une instance a_test entraînera :
a_test.method_one() => Test.method_one(a_test)
Pour définir une méthode statique qui est invoqué sur la classe plutôt que sur une instance, utilisez le décorateur @staticmethod. Ce décorateur demande à la métaclasse de créer une méthode indépendante. Par exemple :
class Test(object): @staticmethod def method_two(): print "Called method_two"
Maintenant, l'instance et la classe peuvent invoquer method_two :
a_test = Test() a_test.method_one() a_test.method_two() Test.method_two()
L'appel de method_two sans instance ne générera pas d'erreur, contrairement à method_one, qui attend un instance pour y être lié.
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!