2013-05-08 3 views

ответ

6

dir() дает только имена атрибутов; использовать getattr() function для получения фактического атрибута:

for i in dir(foo): 
    attr = getattr(foo, i) 
    print type(attr) 

Вы также можете быть заинтересованы в inspect module; в inspect.getmembers() function списки имен плюс атрибуты для вас:

from inspect import getmembers 

for name, attr in getmembers(foo): 
    print '{}: {}'.format(name, type(attr)) 

Кроме того, getmembers() позволяет фильтровать атрибут типа, а также:

from inspect import getmembers, ismethod 

for name, attr in getmembers(foo, ismethod): 
    print '{}: {}'.format(name, type(attr)) 

бы только показать вам связанных методов на foo.

+0

Основываясь на моем времени, мы подумали, что мы находимся на расстоянии 11 секунд, но я думаю, что это было ближе. Во всяком случае, вы снова FGITW меня (Когда я узнаю дворак?) :-P. +1 – mgilson

+0

Ха, спасибо вам, милльсон. –

+0

@mgilson: глядя на отметки времени, между стойками есть 5 секунд. :-) –

Смежные вопросы