Maison  >  Article  >  développement back-end  >  méthode de classe de fonction python()

méthode de classe de fonction python()

巴扎黑
巴扎黑original
2017-08-21 13:43:032198parcourir

classmethod(function)

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!

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