手记

Python 的内置函数 callable

Python 的内置函数 callable() 用于检查一个对象是否可以被调用(即是否是可调用对象)。可调用对象指的是那些可以像函数一样通过使用圆括号 () 来调用的对象,例如函数、方法、类或实现了 __call__ 方法的对象。

语法

callable(object)
  • object:要检查的对象。
  • 返回值:如果 object 是可调用的,返回 True;否则返回 False

示例

  1. 检查函数是否可调用

    def greet():
        print("Hello!")
    
    print(callable(greet))  # 输出:True
    
  2. 检查类是否可调用(类本身是可调用的,用于创建实例):

    class MyClass:
        pass
    
    print(callable(MyClass))  # 输出:True
    
  3. 检查实例是否可调用(默认情况下实例不可调用,除非实现了 __call__ 方法):

    obj = MyClass()
    print(callable(obj))  # 输出:False
    
  4. 实现 __call__ 方法使实例可调用

    class CallableClass:
        def __call__(self):
            print("Instance called!")
    
    obj = CallableClass()
    print(callable(obj))  # 输出:True
    obj()  # 输出:"Instance called!"
    
  5. 检查内置函数是否可调用

    print(callable(print))  # 输出:True
    
  6. 检查不可调用对象

    num = 42
    print(callable(num))  # 输出:False
    

应用场景

  • 动态调用检查:在需要动态确定一个对象是否可调用时(例如在实现插件系统或回调机制时),callable() 非常有用。
  • 元编程:在编写框架或库时,可能需要检查用户提供的对象是否可调用。
  • 调试:快速验证某个对象是否支持调用操作。

注意事项

  • callable() 返回 True 并不保证调用一定会成功,它只是检查对象在形式上是否可调用。实际调用时可能会因参数不匹配或其他原因引发异常。
  • 在 Python 3.x 中,callable() 是一个内置函数;在 Python 2.x 中,它曾经被移除过一段时间,但后来又重新引入。
0人推荐
随时随地看视频
慕课网APP