1. ホーム
  2. python

[解決済み] Pythonのクラスのメソッドのリストを取得するにはどうすればよいですか?

2022-03-22 05:01:37

質問

クラス内のメソッドを繰り返し処理したり、クラスやインスタンスのオブジェクトを、存在するメソッドに応じて異なる方法で処理したい。クラスメソッドの一覧を取得する方法を教えてください。

こちらもご覧ください。

どのように解決するのですか?

のメソッドをリストアップ)。 optparse.OptionParser クラス)を作成します。

>>> 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)
...

注目すべきは getmembers は2つのタプルのリストを返します。最初の項目はメンバーの名前、2 番目の項目は値です。

にインスタンスを渡すこともできます。 getmembers :

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