@的含义是遇到这个函数直接找对应的重新写得那个吧?
@的含义是遇到这个函数直接找对应的重新写得那个吧?
比如
@log def ccc(n): return n*n
,以后如果要去调用ccc函数,就直接把ccc传到log调用log运行了吧?
@的含义是遇到这个函数直接找对应的重新写得那个吧?
比如
@log def ccc(n): return n*n
,以后如果要去调用ccc函数,就直接把ccc传到log调用log运行了吧?
2016-03-28
如果你熟悉Java的话,在Java中也使用‘@’在Javadoc和1.5以后的版本中的annotation。@是一个符号,一个Marker。在Python中, 我们用@实现decorator,比较常见的应用在:
@property
@classmethod
@staticmethod
“调用CCC函数,就直接 把CCC传到log调用log运行了吧?”你可以这个理解,但最好以decorator的思想去使用。简单直白的一个例子:
@dec2
@dec1
def func(arg1, arg2, ...):
pass
上面的代码等同于:
def func(arg1, arg2, ...):
pass
func = dec2(dec1(func))
希望你能理解了,如果我的答案有误或不完整,请各位修正
举报