除了dir已经提到的内置,还有inspect一个非常好的getmembers方法的模块.结合pprint.pprint你有一个强大的组合
from pprint import pprint
from inspect import getmembers
import linecache
pprint(getmembers(linecache))
Run Code Online (Sandbox Code Playgroud)
一些样本输出:
('__file__', '/usr/lib/python2.6/linecache.pyc'),
('__name__', 'linecache'),
('__package__', None),
('cache', {}),
('checkcache', <function checkcache at 0xb77a7294>),
('clearcache', <function clearcache at 0xb77a7224>),
('getline', <function getline at 0xb77a71ec>),
('getlines', <function getlines at 0xb77a725c>),
('os', <module 'os' from '/usr/lib/python2.6/os.pyc'>),
('sys', <module 'sys' (built-in)>),
('updatecache', <function updatecache at 0xb77a72cc>)
Run Code Online (Sandbox Code Playgroud)
请注意,与dir您不同,您可以看到成员的实际值.您可以应用getmembers类似于您可以应用的过滤器的过滤器dir,它们可以更强大.例如,
def get_with_attribute(mod, attribute, public=True):
items = getmembers(mod)
if public:
items = filter(lambda item: item[0].startswith('_'), items)
return [attr for attr, value in items if hasattr(value, attribute]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
256 次 |
| 最近记录: |