Mise à jour variable de Classe à l'intérieur d'une méthode d'instance
class MyClass:
var1 = 1
def update(value):
MyClass.var1 += value
def __init__(self,value):
self.value = value
MyClass.update(value)
a = MyClass(1)
Je suis en train de mettre à jour une variable de classe(var1) à l'intérieur d'une méthode(_init_) mais je me donne:
TypeError: unbound method update() must be called with MyClass instance as first argument (got int instance instead)
Je fais cela parce que je veux un accès facile à toutes les variables dans une classe en appelant impression MyClass.var1
OriginalL'auteur f.rodrigues | 2014-01-04
Vous devez vous connecter pour publier un commentaire.
Vous êtes confus classes et instances.
MyClass
est une classe,a
est une instance de cette classe. Votre erreur ici est queupdate
est un méthode d'instance. Pour appeler à partir d'__init__
, utilisez:ou
Vous pouvez également faire
update
un méthode de classe:OriginalL'auteur jonrsharpe
Vous devez utiliser le
@classmethod
décorateur:OriginalL'auteur damienfrancois