Python-类对象特殊方法__call__()

  1. 类对象特殊方法__call__()

类对象特殊方法__call__()

如果在类对象中实现了特殊方法__call__(),那么就可以像调用函数一样直接调用这个类对象的实例对象,从而会自动调用特殊方法__call__()

#!/usr/bin/python3

class MyClass(object):
    def __call__(self):
        print('__call__()被调用了')


mc = MyClass()
mc()

MyClass()()
[root@lyucan ~]# ./30.py
__call__()被调用了
__call__()被调用了

内置函数callable()用于判断指定对象是否是可调用的,除了函数对象是可调用的之外,对于实现了特殊方法__call__()的类对象,其实例对象也是可调用的。

#!/usr/bin/python3

def func():
    pass


class MyClass(object):
    def __call__(self):
        print('__call__()被调用了')


print(callable(func))

print(callable(MyClass))
print(callable(MyClass()))
[root@lyucan ~]# ./30.py
True
True
True

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 289211569@qq.com