Python 的内置函数 callable() 用于检查一个对象是否可以被调用(即是否是可调用对象)。可调用对象指的是那些可以像函数一样通过使用圆括号 () 来调用的对象,例如函数、方法、类或实现了 __call__ 方法的对象。
语法
callable(object)
示例
-
检查函数是否可调用:
def greet(): print("Hello!") print(callable(greet)) # 输出:True -
检查类是否可调用(类本身是可调用的,用于创建实例):
class MyClass: pass print(callable(MyClass)) # 输出:True -
检查实例是否可调用(默认情况下实例不可调用,除非实现了
__call__方法):obj = MyClass() print(callable(obj)) # 输出:False -
实现
__call__方法使实例可调用:class CallableClass: def __call__(self): print("Instance called!") obj = CallableClass() print(callable(obj)) # 输出:True obj() # 输出:"Instance called!" -
检查内置函数是否可调用:
print(callable(print)) # 输出:True -
检查不可调用对象:
num = 42 print(callable(num)) # 输出:False
应用场景
- 动态调用检查:在需要动态确定一个对象是否可调用时(例如在实现插件系统或回调机制时),
callable()非常有用。 - 元编程:在编写框架或库时,可能需要检查用户提供的对象是否可调用。
- 调试:快速验证某个对象是否支持调用操作。
注意事项
callable()返回True并不保证调用一定会成功,它只是检查对象在形式上是否可调用。实际调用时可能会因参数不匹配或其他原因引发异常。- 在 Python 3.x 中,
callable()是一个内置函数;在 Python 2.x 中,它曾经被移除过一段时间,但后来又重新引入。
随时随地看视频