面向对象3 类特殊成员之:__call__()

class Foo:
    def __init__(self):
        print("init")

    def __call__(self):
        print("call")
        return 1

Foo()()
输出init
   call

先执行Foo(),输出一个"init",后面一个():一个实例对象后面加(),代表执行类中的__call__方法

r = Foo()()
print(r)
输出init
   call
   1

下面是同样的,只是写法稍有变化
r = Foo()

输出init
r()
输出init
   call
posted @ 2018-10-04 02:13  greenfan  阅读(108)  评论(0)    收藏  举报