1

假设我们执行以下操作:

for i in dir(foo):

    print type(i)

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

4

1 回答 1

6

dir()只给你属性的名称;使用该getattr()函数检索实际属性:

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

您可能也对该inspect模块感兴趣;该inspect.getmembers()函数为您列出名称和属性:

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

于 2013-05-08T16:23:38.473 回答