约 1562 字

约 8 分钟

#Python 的内置函数 callable

说明:判断对象是否可调用。

#函数说明

def callable(obj):
    '''
    判断对象是否可调用

    :param obj: 一个对象
    :return: 如果 obj 可以调用则返回 True,否则返回 False
    '''

说明

判断对象是否可以被调用,自定义类通过实现 __call__ 方法实现调用过程。

请注意,即使 callable 判断对象可以被调用,在实际调用对象时仍然可能会失败;但如果 callable 判断对象不可被调用,那么调用对象必定失败。

类是可调用的,调用类将返回一个新的实例,也即构造函数。

参数

  • obj - 要判断的变量

返回值

  • 如果对象可以被调用,则返回 True
  • 如果对象不可被调用,则返回 False

#示例

class Foo:
    pass

class Bar:
    def __call__(self):
        pass

def func():
    pass

print('数值', callable(10))
print('lambda', callable(lambda x:x))
print('函数', callable(func))
print('Foo 对象', callable(Foo()))
print('Bar 对象', callable(Bar()))

>>> Establishing WebAssembly Runtime.

>>> Standby.

Powered by Shift.

#可调用对象的类型

  1. 函数:包括内置函数、自定义函数和 lambda 表达式。

    def greet():
        print("Hello!")
    print(callable(greet))  # 输出: True
    
  2. 方法:类中定义的方法。

    class MyClass:
        def method(self):
            pass
    obj = MyClass()
    print(callable(obj.method))  # 输出: True
    
  3. 类:类本身是可调用的,因为调用类会创建一个实例。

    class MyClass:
        pass
    print(callable(MyClass))  # 输出: True
    
  4. 实现了 __call__ 方法的对象:如果一个类实现了 __call__ 方法,其实例也可以被调用。

    class CallableClass:
        def __call__(self):
            print("Called!")
    obj = CallableClass()
    print(callable(obj))  # 输出: True
    

#推荐阅读

更新: 2025/10/25

作者: PlanC

创建: 2025/6/9