Comment obtenir une liste de toutes les variables d'une classe itérable ? Un peu comme locals(), mais pour une classe
class Example(object):
bool143 = True
bool2 = True
blah = False
foo = True
foobar2000 = False
def as_list(self)
ret = []
for field in XXX:
if getattr(self, field):
ret.append(field)
return ",".join(ret)
cela devrait donner
>>> e = Example()
>>> e.as_list()
bool143, bool2, foo
0 votes
Pourquoi ne peut-on pas utiliser
for field in [ self.bool143, self.bool2, self.blah, self.foo, self.foobar2000 ]
? Comment se fait-il que vous ne connaissiez pas les variables d'instance de la classe ?4 votes
S.Lott : c'est ce que j'ai fini par faire de toute façon. Dans mon code réel, j'ai environ 40 variables, et j'ai pensé que ce serait mieux et plus DRY de ne pas avoir à faire manuellement la liste des itérations.
3 votes
Duplicata possible de Itération sur les attributs des objets en python
0 votes
En rapport : python - Existe-t-il une fonction intégrée pour imprimer toutes les propriétés et valeurs actuelles d'un objet ? - Stack Overflow
1 votes
ClassName.__dict__["__doc__"]
Cela permet de filtrer les fonctions, les variables intégrées, etc., et de n'obtenir que les champs dont vous avez besoin !