找出dir中的类型()

时间:2013-05-08 16:22:59

标签: python python-2.7

说我们做了以下事情:

for i in dir(foo):

    print type(i)

此设置将返回一个字符串列表,但我更感兴趣的是找出foo中的项目类型。什么是一个好方法呢?

1 个答案:

答案 0 :(得分: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上显示绑定方法。