en boucle sur toutes les variables membres d'une classe en python

Comment obtenez-vous une liste de toutes les variables dans une classe c'est iteratable? Un peu comme les gens du pays(), 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)

il doit retourner

>>> e = Example()
>>> e.as_list()
bool143, bool2, foo
  • Pourquoi ne pouvez pas utiliser for field in [ self.bool143, self.bool2, self.blah, self.foo, self.foobar2000 ]? Comment se fait-il que vous ne connaissez pas les variables d'instance de la classe?
  • S. Lott: c'est ce que j'ai fini par faire de toute façon. Dans mon code, j'ai comme 40 variables, et j'ai pensé qu'il serait mieux et plus SEC pour ne pas avoir à effectuer manuellement l'itération de la liste.
  • Double Possible de Itérer sur les attributs de l'objet en python
InformationsquelleAutor priestc | 2009-09-09