Maison >développement back-end >Tutoriel Python >La différence entre les méthodes de classe Python et les méthodes d'instance
Les types de méthodes les plus courants en Python sont les méthodes d'instance et les méthodes de classe. Comment sont-ils définis ? Comment l'appeler ? Quelles sont leurs différences et leurs fonctions ? Voir ci-dessous.
Tout d'abord, ces méthodes sont définies dans la classe. Permettez-moi d’abord de parler brièvement de la façon de le définir et de l’appeler. (PS : les objets d'instance ont les plus grandes autorisations.)
Méthode d'instance (Apprentissage recommandé : Tutoriel vidéo Python)
Définition : premier paramètre It doit être un objet d'instance. Le nom du paramètre est généralement accepté comme étant "self", à travers lequel les attributs et les méthodes de l'instance sont passés (les attributs et les méthodes de la classe peuvent également être passés
appel) ; : ne peut être appelé que par l'objet instance.
Méthode de classe
Définition : Utiliser le décorateur @classmethod. Le premier paramètre doit être l'objet de classe actuel. Le nom du paramètre est généralement accepté comme étant "cls", par lequel les attributs et méthodes de la classe sont transmis (les attributs et méthodes de l'instance ne peuvent pas être transmis
Appel : l'objet instance et les objets classe peuvent être appelés.Méthodes d'instance
En bref, les méthodes d'instance sont des méthodes qui peuvent être utilisées par les instances d'une classe. Pas beaucoup d'explications ici.Méthode de classe
Utilisez le décorateur @classmethod. En principe, les méthodes de classe sont des méthodes qui opèrent sur la classe elle-même en tant qu'objet. Supposons qu'il existe une méthode et qu'il est logiquement plus raisonnable que cette méthode soit appelée en utilisant la classe elle-même comme objet, alors cette méthode peut être définie comme une méthode de classe. De plus, si l’héritage est requis, il peut également être défini comme méthode de classe. Supposons que j'ai une classe d'élèves et une classe de classe. Les fonctions que je souhaite implémenter sont : Effectuer l'opération d'augmentation de la taille de la classe et obtenir le nombre total de membres de la classe ; >Étudiant La classe hérite de la classe class. Chaque fois qu'un élève est instancié, le nombre d'élèves dans la classe peut augmenter
Enfin, je souhaite définir certains élèves et obtenir le nombre total d'élèves ; élèves dans la classe.
class ClassTest(object): __num = 0 @classmethod def addNum(cls): cls.__num += 1 @classmethod def getNum(cls): return cls.__num # 这里我用到魔术方法__new__,主要是为了在创建实例的时候调用累加方法。 def __new__(self): ClassTest.addNum() return super(ClassTest, self).__new__(self) class Student(ClassTest): def __init__(self): self.name = '' a = Student() b = Student() print(ClassTest.getNum())
Pour plus d'articles techniques liés à Python, veuillez visiter la colonne
Tutoriel PythonCe 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!