This question already has answers here:
What does the “at” (@) symbol do in Python?
(12个答案)
6年前关闭。
我正在阅读的代码使用
(12个答案)
6年前关闭。
我正在阅读的代码使用
@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
最佳答案
@
语法表示batch_transform
是Python装饰器,请在wiki中阅读有关它的更多信息,并引用:
Python装饰器是对Python语法的特定更改,它使我们能够更方便地更改函数和方法(以及将来版本中的类)。这支持DecoratorPattern的更具可读性的应用程序,也支持其他用途
还要看看documentation:
函数定义可以由一个或多个装饰器表达式包装。定义函数时,将在包含函数定义的范围中评估装饰器表达式。结果必须是可调用的,它必须以函数对象作为唯一参数来调用。返回的值绑定到函数名称而不是函数对象。多个装饰器以嵌套方式应用
10-05 21:46