callable()函数用于检查一个对象是否是可调用的。如果返回True,object仍然可能调用失败;但如果返回False,调用对象object绝对不会成功。
对于函数(1),方法(2),lambda函式,类(3),以及实现了__call__方法的类(4)的实例,它都返回True。
>>>callable(0)
False
>>> callable("runoob")
False
>>> def add(a, b): # 函数(1)
... return a + b
...
>>> callable(add) # 函数(1)返回 True
True
>>> class A: # 类(3)
... def method(self):
... return 0
...
>>> callable(A) # 类(3)返回 True
True
>>> a = A()
>>> callable(a) # 实例a的类A没有实现 __call__, 返回 False
False
>>> class B:
... def __call__(self):
... return 0
...
>>> callable(B)
True
>>> b = B()
>>> callable(b) # 实例b的类(4)实现了 __call__, 返回 True
True
参考资料:
2.Stack Overflow:What is a “callable” in Python?
3.segmentfault:Python中callable的理解?
4.刘志军:__call__ 方法
5.python --- Python中的callable 函数
6.python函数每日一讲 - callable(object)
7.Python标准库:内置函数callable(object)
9.书籍<Python标准库>的1.2.4.3.(电子页码22)