在有关装饰器和“复合语句”的官方 Python 文档的此页面上,给出了以下代码示例:
[样品开始]
@f1(arg)
@f2
def func(): pass
相当于:
def func(): pass
func = f1(arg)(f2(func))
[样本结束]
但是,我不明白'func = f1(arg)(f2(func))'。我以前从未见过这样的电话,我不知道这意味着什么。是使用不同参数进行多次调用,每对括号包含一个参数(第一个中的'arg',第二个中的'f2(func)'),还是别的什么?我需要了解这一点才能学习装饰器。另外,这在 Python 2.7 中有效吗?我咨询过的关于装饰器的网站之一是关于 Python 3.2 的。