looping over all member variables of a class in python
python
Solution
dir(obj)
gives you all attributes of the object. You need to filter out the members from methods etc yourself:
class Example(object):
bool143 = True
bool2 = True
blah = False
foo = True
foobar2000 = False
example = Example()
members = [attr for attr in dir(example) if not callable(getattr(example, attr)) and not attr.startswith("__")]
print members
Will give you:
['blah', 'bool143', 'bool2', 'foo', 'foobar2000']
Problem
How do you get a list of all variables in a class thats iteratable? Kind of like locals(), but for a class ``` 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) ``` this should return ``` >>> e = Example() >>> e.as_list() bool143, bool2, foo ```