iPython/Python中的@符号有什么作用?
iPython/Python中的@符号有什么作用?
这个问题已经在这里有了答案:
我正在阅读的代码中使用了@batch_transform
。这个@
符号是什么作用?它是ipython特有的吗?
from zipline.transforms import batch_transform from scipy import stats @batch_transform def regression_transform(data): pep_price = data.price['PEP'] ko_price = data.price['KO'] slope, intercept, _, _, _ = stats.linregress(pep_price, ko_price) return intercept, slope
admin 更改状态以发布 2023年5月21日
这是一个装饰器,一个Python装饰器。
函数、方法或类定义可以在一个特殊符号 @
前面使用一个叫做装饰器的符号,其目的是修改接下来的定义的行为。
装饰器用 @ 符号表示,必须在相应的函数、方法或类之前的单独一行上。以下是一个例子:
class Foo(object): @staticmethod def bar(): pass
此外,您还可以拥有多个装饰器:
@span @foo def bar(): pass
这里有一个很好的教程,这里有一个关于它的 SO 线程。