Maison >développement back-end >Tutoriel Python >méthode de classe de fonction python()
Description chinoise :
classmethod est utilisé pour spécifier une méthode de classe comme méthode de classe. tel paramètre. La méthode de la classe spécifiée est une méthode d'instance, et la méthode d'utilisation est la suivante :
class C: @classmethod def f(cls, arg1, arg2, ...): ...
La méthode de classe peut être appelée soit directement en tant que classe (C.f()), soit en tant que instance (C().f()).
Version : Nouveau dans python2.2, nouvelles fonctionnalités ajoutées dans python2.4. Toujours disponible en python3.
Description en anglais:
Renvoie une méthode de classe pour la fonction.
Une méthode de classe reçoit la classe comme premier argument implicite, tout comme une méthode d'instance reçoit l'instance. Pour déclarer une méthode de classe, utilisez cet idiome :
class C: @classmethod def f(cls, arg1, arg2, ...): ...
Le formulaire @classmethod est un décorateur de fonction – voir la description des définitions de fonction dans Définitions de fonctions pour plus de détails.
Elle peut être appelée soit sur la classe (comme C.f()) soit sur une instance (comme C().f()). L'instance est ignorée sauf pour sa classe si une méthode de classe est appelée pour une classe dérivée. , l'objet de classe dérivé est passé comme premier argument implicite.
Les méthodes de classe sont différentes des méthodes statiques C++ ou Java. Si vous les souhaitez, consultez staticmethod() dans cette section.
Pour. pour plus d'informations sur les méthodes de classe, consultez la documentation sur la hiérarchie des types standard dans La hiérarchie des types standard.
Nouveauté dans la version 2.2.
Modifié dans la version 2.4 : Fonction syntaxe du décorateur ajoutée.
Exemple de code :
>>> class C: ... @classmethod ... def f(self): ... print "This is a class method" ... >>> C.f() This is a class method >>> c = C() >>> c.f() This is a class method >>> class D: ... def f(self): ... print " This is not a class method " ... >>> D.f() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unbound method f() must be called with D instance as first argument (got nothing instead) >>> d = D() >>> d.f() This is not a class method
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!