変数がインスタンス メソッドであるかどうかをどのように確認すればよいでしょうか? 私は Python 2.5 を使用しています。
このようなもの:
class Test:
def method(self):
pass
assert is_instance_method(Test().method)
ベストアンサー1
inspect.ismethod
単に呼び出せるものではなく、確実にメソッドがあるかどうかを確認したいものです。
import inspect
def foo(): pass
class Test(object):
def method(self): pass
print inspect.ismethod(foo) # False
print inspect.ismethod(Test) # False
print inspect.ismethod(Test.method) # True
print inspect.ismethod(Test().method) # True
print callable(foo) # True
print callable(Test) # True
print callable(Test.method) # True
print callable(Test().method) # True
callable
引数がメソッド、関数 ( lambda
s を含む)、インスタンス、__call__
またはクラスである場合は true になります。
im_class
メソッドは関数(やなど)とは異なる特性を持っていますim_self
。そのため、
assert inspect.ismethod(Test().method)