小编典典

Python:断言变量是实例方法吗?

python

如何检查变量是否是实例方法?我正在使用python 2.5。

像这样:

class Test:
    def method(self):
        pass

assert is_instance_method(Test().method)

阅读 225

收藏
2020-12-20

共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如果参数是方法,函数(包括lambdas),具有的实例__call__或类,则为true 。

方法与函数(如im_classim_self)的属性不同。所以你要

assert inspect.ismethod(Test().method)
2020-12-20