假设我们做了以下事情:
for i in dir(foo):
print type(i)
Run Code Online (Sandbox Code Playgroud)
这个设置会返回一个字符串列表,但我更感兴趣的是找出foo里面的项目类型.这样做有什么好办法?
dir()只给出了属性的名称; 使用该getattr()函数检索实际属性:
for i in dir(foo):
attr = getattr(foo, i)
print type(attr)
Run Code Online (Sandbox Code Playgroud)
您可能也对该inspect模块感兴趣; 该inspect.getmembers()函数为您列出名称和属性:
from inspect import getmembers
for name, attr in getmembers(foo):
print '{}: {}'.format(name, type(attr))
Run Code Online (Sandbox Code Playgroud)
此外,还getmembers()允许您过滤属性类型:
from inspect import getmembers, ismethod
for name, attr in getmembers(foo, ismethod):
print '{}: {}'.format(name, type(attr))
Run Code Online (Sandbox Code Playgroud)
只会显示绑定的方法foo.