在python的函数中偶尔会看到函数定义的上一行有@functionname的修饰,当解释器读到@的这样的修饰符之后,会先解析@后的内容,直接就把@下一行的函数或者类作为@后边的函数的参数,然后将返回值赋值给下一行修饰的函数对象。
比如:
@a
@b
def c():
…
python会按照自下而上的顺序把各自的函数结果作为下一个函数(上面的函数)的输入,也就是a(b(c()))
def funca(a):
print("function a")def funcb(b):
print(b(2)) print("function b")
@funca@funcbdef func(c):
print("function c")
return c**2
4
function b
function a
则整个程序的执行过程就是funa(funb(func))
以上就是python中@如何使用的详细内容。