如何在Python类中获取方法列表?

问题:

我想遍历一个类中的方法,或者根据存在的方法来处理类或实例对象的不同。如何获取类方法列表?
另见:

回答:

一个例子(列出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)
...

 
 Code问答: codewenda.com
Stackoverflow:How do I get list of methods in a Python class?

发表评论

电子邮件地址不会被公开。 必填项已用*标注

68 + = 72