11-类中的__call__函数

__call__是一个很神奇的特性,只要某个类型中有__call__方法,,我们可以把这个类型的对象当作函数来使用。相当于重载了括号运算符。

举例:

class TestCall(object):
def __init__(self, name):
self.name = name def __call__(self, *args, **kwargs):
print("self.name: %s. " % self.name, end=' ')
print('__call__() is running ') if __name__ == '__main__':
call = TestCall(name='xiaoming') ##可以直接使用call()函数,相当于调用了__call__()函数
call() # call.__call__() call.__call__()

结果如下:

self.name: xiaoming.    __call__()  is  running
self.name: xiaoming. __call__() is running # call() 就等价于 call.__call()__ 这样的调用
上一篇:Android Studio快速添加Gson以及GsonFormat的使用


下一篇:MySQL数据库的版本更新方法