Traversing the properties of a Class
Bruno Desthuilliers
bdesth.quelquechose at free.quelquepart.fr
Thu Jan 18 16:42:24 EST 2007
EdG a écrit :
(top-post corrected)
>
> Neil Cerutti wrote:
>
>>On 2007-01-18, EdG <edquichan at yahoo.com> wrote:
>>
>>>For debugging purposes, I would like to traverse the class
>>>listing out all the properties.
>>
>>This is the first thing that came to mind.
>>
>>def show_properties(cls):
>> for attr in dir(cls):
>> if isinstance(getattr(cls, attr), property):
>> print attr
>>
> This works great. I have one more question. Now that I have the name
> of the property, how do I get it's value?
>
> I want to print '%s = %s' % (attr,theattributesvalue)
Then you need to have the instance...
def list_properties(cls):
return [
name for name in dir(cls)
if isinstance(getattr(cls, name), property)
]
def print_properties(obj):
for name in list_properties(obj.__class__):
print "%s : %s" % (name, str(getattr(obj, name)))
More information about the Python-list
mailing list