假设我们执行以下操作:
for i in dir(foo):
print type(i)
此设置将返回一个字符串列表,但我更感兴趣的是找出 foo 中项目的类型。执行此操作的好方法是什么?
最佳答案
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
上的绑定(bind)方法。
关于python - 在 dir() 中找出类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16445535/