Maison  >  Article  >  développement back-end  >  La différence entre les méthodes de classe Python et les méthodes ordinaires

La différence entre les méthodes de classe Python et les méthodes ordinaires

藏色散人
藏色散人original
2019-07-03 09:45:033793parcourir

La différence entre les méthodes de classe Python et les méthodes ordinaires

La différence entre les méthodes de classe Python et les méthodes ordinaires

Ce qui suit utilise des exemples pour illustrer les différences.

Définissez d'abord une classe, comprenant 2 méthodes :

class Apple(object):
        def get_apple(self, n):
                print "apple: %s,%s" % (self,n)
        @classmethod
        def get_class_apple(cls, n):
                print "apple: %s,%s" % (cls,n)

Méthode commune de la classe

Méthode commune de la classe, qui doit être appelé par une instance de la classe .

a = Apple()
a.get_apple(2)

Résultat de sortie

apple: <__main__.Apple object at 0x7fa3a9202ed0>,2

Regardez la relation de liaison :

print (a.get_apple)
<bound method Apple.get_apple of <__main__.Apple object at 0x7fa3a9202ed0>>

Les méthodes ordinaires de la classe ne peuvent être utilisées qu'avec des instances de la classe. Si vous utilisez une classe pour appeler une méthode normale, l'erreur suivante se produit :

Apple.get_apple(2)
Traceback (most recent call last): File "static.py", line 22, in <module> Apple.get_apple(2) TypeError: unbound method get_apple() must be called with Apple instance as first argument (got int instance instead)

Méthode de classe

Méthode de classe, indiquant que la méthode est liée à la classe.

a.get_class_apple(3)
Apple.get_class_apple(3)
apple: <class &#39;__main__.Apple&#39;>,3
apple: <class &#39;__main__.Apple&#39;>,3

Regardez la relation de liaison :

print (a.get_class_apple) print (Apple.get_class_apple)

Le résultat de sortie est le même lors de l'utilisation d'une instance et de l'appel d'une classe.

<bound method type.get_class_apple of <class &#39;__main__.Apple&#39;>> <bound method type.get_class_apple of <class &#39;__main__.Apple&#39;>>

Recommandations associées : "Tutoriel Python"

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