全面理解python之__call__()函数

作用: 为了将类的实例对象变为可调用对象(相当于重载()运算符)

  • 函数本身可以被调用
    def func():
        pass
    class class_test():
        def __init__(self):
            pass
    print(callable(func))
    print(callable(class_test))
    # 输出 True True
    
  • 类本身可以被调用,主要用作生成实例化对象
    class class_test():
        def __init__(self):
            pass
    print(callable(class_test))
    # 输出 True
    
  • 类的实例化对象无法被调用
    class class_test():
        def __init__(self):
            pass
    a = class_test()
    print(callable(a))
    # 输出 False
    
  • 通过增加__callable__()函数,将类实例化对象变为可调用
    class class_test():
        def __init__(self):
            pass
        def __call__(self):
            pass
    a = class_test()
    print(callable(a))
    # 输出 True
    

你可能感兴趣的:(Python)