关于装饰器的基本事实是
@decoratordef func(): ...
完全等同于
def func(): ...func=decorator(func)
所以,
@logger.logdef first_x_method(self): ...
是相同的
def first_x_method(self): ...first_x_method=logger.log(first_x_method)
因此,
logger.log静态方法用arguments调用
func = first_x_method。
在调用中
logger.log(first_x_method),子方法
__已定义并返回。
first_x_method=logger.log(first_x_method)因此设置
first_x_method为引用sub方法
__。
中的括号
first_x_method()告诉Python调用该方法
first_x_method。
因此,
x().first_x_method()首先实例化类x的实例,然后调用方法
first_x_method(提供的x()作为第一个参数)。
既然
first_x_method指的
__是
__被调用。



