eval function not working how i want it dag namn

Gerald Klix Gerald.Klix at klix.ch
Fri Apr 15 11:16:25 EDT 2005


How about using the vars builtin?

Michael Hoffman schrieb:
> robcarlton wrote:
> 
>> I've written this function to make a list of all of an objects
>> attributes and methods (not for any reason, I'm just learning)
>>
>> def list_members(obj)
>>     l = dir(obj)
>>     return map(lambda x : eval('obj.'+x), l)
> 
> 
> That works fine for me with Python 2.4.
> 
> This is the best way to do it:
> 
> def list_members(obj):
>     return [getattr(obj, name) for name in dir(obj)]
> 
> Although personally I would prefer to have this information in dict 
> form, so i'd use:
> 
> return dict((name, getattr(obj, name)) for name in dir(obj))
> 
> For objects defined in CPython, you can use obj.__dict__, but this is 
> somewhat hacky, and I'd avoid it.

-- 
GPG-Key: http://keyserver.veridis.com:11371/search?q=0xA140D634




More information about the Python-list mailing list