如何获取 Python 类中的方法列表? [英] How do I get list of methods in a Python class?

查看:50
本文介绍了如何获取 Python 类中的方法列表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想遍历类中的方法,或者根据存在的方法以不同方式处理类或实例对象.如何获取类方法列表?

另见:

解决方案

一个例子(列出了 optparse.OptionParser 类的方法):

<预><代码>>>>从 optparse 导入 OptionParser>>>进口检验#python2>>>inspect.getmembers(OptionParser, predicate=inspect.ismmethod)[([('__init__', <未绑定方法OptionParser.__init__>),...('add_option', <未绑定方法OptionParser.add_option>),('add_option_group', <未绑定方法OptionParser.add_option_group>),('add_options', <未绑定方法OptionParser.add_options>),('check_values', <未绑定方法OptionParser.check_values>),('destroy', <未绑定方法OptionParser.destroy>),('disable_interspersed_args',<未绑定方法OptionParser.disable_interspersed_args>),('enable_interspersed_args',<未绑定方法OptionParser.enable_interspersed_args>),('error', <未绑定方法OptionParser.error>),('exit', <未绑定方法OptionParser.exit>),('expand_prog_name', <未绑定方法OptionParser.expand_prog_name>),...]# python3>>>检查.getmembers(OptionParser,谓词=inspect.isfunction)...

注意 getmembers 返回一个 2 元组列表.第一项是成员的名称,第二项是值.

您还可以将实例传递给 getmembers:

<预><代码>>>>解析器 = OptionParser()>>>检查.getmembers(解析器,谓词=inspect.ismmethod)...

I want to iterate through the methods in a class, or handle class or instance objects differently based on the methods present. How do I get a list of class methods?

Also see:

解决方案

An example (listing the methods of the optparse.OptionParser class):

>>> from optparse import OptionParser
>>> import inspect
#python2
>>> 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>),
 ...
 ]
# python3
>>> inspect.getmembers(OptionParser, predicate=inspect.isfunction)
...

Notice that getmembers returns a list of 2-tuples. The first item is the name of the member, the second item is the value.

You can also pass an instance to getmembers:

>>> parser = OptionParser()
>>> inspect.getmembers(parser, predicate=inspect.ismethod)
...

这篇关于如何获取 Python 类中的方法列表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆