国际访客建议访问 Primers 编程伙伴 国际版站点 > Python 教程 > callable 以获得更好的体验。

# Python 的内置函数 callable

请查看 Python 内建函数列表 了解更多相关 API。

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

# 函数说明

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

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

!subtitle:说明

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

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

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

!subtitle:参数

  • obj - 要判断的变量

!subtitle:返回值

  • 如果对象可以被调用,则返回 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()))

# 可调用对象的类型

  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-11-27 09:37:58 创建于: 2025-11-27 09:37:58