如何检查变量是否是实例方法?我正在使用python 2.5。
像这样:
class Test: def method(self): pass assert is_instance_method(Test().method)
inspect.ismethod 是您想确定是否确实有一种方法,而不仅仅是可以调用的方法。
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如果参数是方法,函数(包括lambdas),具有的实例__call__或类,则为true 。
callable
lambda
__call__
方法与函数(如im_class和im_self)的属性不同。所以你要
im_class
im_self
assert inspect.ismethod(Test().method)