类对象特殊方法__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