0
votes

Appeler la variable à l'intérieur de l'auto-paramètre en classe Méthode

Je me demande si nous pouvons appeler une variable initiée dans auto en classe. Par exemple: xxx

Je veux atteindre la même sortie comme celle-ci: xxx

Comment puis-je accéder au auto.var1 < / code> dans callvar1 ?


1 commentaires

Non, il n'y a pas d'état d'instance dans une méthode de classe, c'est tout le point . Vous pourriez passer l'instance explicitement comme un autre argument ... semble inélégant


3 Réponses :


0
votes

Utilisez le mot-clé auto pour accéder aux membres de la classe.

class ABC():

    var1 = '123'
    
    def method1(self):
        self.var1 = '123'

    @classmethod
    def callvar1(self):
        print(self.var1)


0 commentaires

1
votes

Etant donné que callvar1 est une méthode de classe, il n'a pas accès à auto . En effet, la méthode n'est pas liée à une instance spécifique de la classe, mais plutôt à la classe elle-même. Par conséquent, lorsque vous appelez la méthode, elle ne sait pas quelle instance vous faites référence à. Comme vous l'avez fait dans le deuxième bloc du code, vous devez transmettre l'objet dont var1 vous souhaitez imprimer sur la fonction.

Votre autre option serait de ne pas en faire une méthode de classe.


0 commentaires

1
votes

Les méthodes de classe sont liées à la classe elle-même plutôt qu'une instance particulière de celui-ci, donc si vous essayez d'accéder à auto.var1 (une variable d'instance) à l'intérieur du Méthode de classe Vous n'allez pas avoir beaucoup de plaisir.

Votre meilleure option consiste simplement à simplement rendre la méthode pas une méthode de classe (en fonction de votre cas d'utilisation): xxx

Bien qu'une autre option consiste à adopter une instance de la classe sur la méthode de la classe: xxx


0 commentaires