J'ai une classe comme ceinitialisation des données attributs
class SomeClass:
def doSomething(self):
self.counter = 50
Je crée une instance x
pour SomeClass
x = SomeClass()
Lorsque je tente d'obtenir la valeur du compteur comme ceci: x.counter
je reçois le erreur suivante -
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: SomeClass instance has no attribute 'counter'
Mais après avoir appelé la fonction de membre x.doSomething()
puis recherchez l'attribut de données, il est disponible.
>>> x.doSomething()
>>> x.counter
50
Pourquoi est-ce comme ça? Tous les attributs de données ne seront-ils pas disponibles dès la création de l'instance?
Merci.
Merci. Est-ce une pratique recommandée de suivre cela? Ou devrions-nous initialiser tous les attributs de données dans '__init__'? – bdhar
On dirait que vous avez modifié la réponse à laquelle répond ma question dans mon commentaire précédent. Merci. – bdhar
@bdhar: A moins que vous ne fassiez quelque chose d'extra-funky, je recommanderais que tous vos attributs d'instance soient initialisés dans le constructeur. –