home changes contents help options

259:オブジェクトに定義されているメソッドのリストを得る

inspect モジュールを使用すると、オブジェクトの各種情報を集めることができます。活躍するのは getmembers 関数および、 is* という命名則の関数らです。 callable 組み込み関数を代わりに用いることもできます。

>>> class X(object):
...   def a(self):
...     pass
...   b = None
...
>>> x = X()
>>> import inspect
>>> inspect.getmembers(x, inspect.ismethod)
[('a', <bound method X.a of <__main__.X object at 0x00A62A30>>)]
>>>
>>>
>>> inspect.getmembers(x, callable)
[('__class__', <class '__main__.X'>), ('__delattr__', <method-wrapper '__delattr
__' of X object at 0x00A62A30>), ('__getattribute__', <method-wrapper '__getattr
ibute__' of X object at 0x00A62A30>), ('__hash__', <method-wrapper '__hash__' of
 X object at 0x00A62A30>), ('__init__', <method-wrapper '__init__' of X object a
t 0x00A62A30>), ('__new__', <built-in method __new__ of type object at 0x1E1E8F3
0>), ('__reduce__', <built-in method __reduce__ of X object at 0x00A62A30>), ('_
_reduce_ex__', <built-in method __reduce_ex__ of X object at 0x00A62A30>), ('__r
epr__', <method-wrapper '__repr__' of X object at 0x00A62A30>), ('__setattr__',
<method-wrapper '__setattr__' of X object at 0x00A62A30>), ('__str__', <method-w
rapper '__str__' of X object at 0x00A62A30>), ('a', <bound method X.a of <__main
__.X object at 0x00A62A30>>)]