3 回答
TA贡献1783条经验 获得超4个赞
一个例子(列出optparse.OptionParser类的方法):
>>> from optparse import OptionParser
>>> import inspect
>>> inspect.getmembers(OptionParser, predicate=inspect.ismethod)
[([('__init__', <unbound method OptionParser.__init__>),
...
('add_option', <unbound method OptionParser.add_option>),
('add_option_group', <unbound method OptionParser.add_option_group>),
('add_options', <unbound method OptionParser.add_options>),
('check_values', <unbound method OptionParser.check_values>),
('destroy', <unbound method OptionParser.destroy>),
('disable_interspersed_args',
<unbound method OptionParser.disable_interspersed_args>),
('enable_interspersed_args',
<unbound method OptionParser.enable_interspersed_args>),
('error', <unbound method OptionParser.error>),
('exit', <unbound method OptionParser.exit>),
('expand_prog_name', <unbound method OptionParser.expand_prog_name>),
...
]
请注意,getmembers返回2元组的列表。第一项是成员的名称,第二项是值。
您还可以将实例传递给getmembers:
>>> parser = OptionParser()
>>> inspect.getmembers(parser, predicate=inspect.ismethod)
...
TA贡献1859条经验 获得超6个赞
有一种dir(theobject)方法可以列出对象的所有字段和方法(作为元组)和inspect模块(作为代码编写),用文档列出字段和方法(在“”中)。
因为可以在Python中调用所有(甚至是字段),所以我不确定是否有内置函数仅列出方法。如果您通过的对象dir是可调用的,您可能想尝试。
TA贡献1906条经验 获得超3个赞
没有外部库的Python 3.x答案
method_list = [func for func in dir(Foo) if callable(getattr(Foo, func))]
被排除在外的结果:
method_list = [func for func in dir(Foo) if callable(getattr(Foo, func)) and not func.startswith("__")]
添加回答
举报