Python中的`@`是什么意思?
在Python中,@
符号的意思是什么呢?
比如说:@login_required
,等等。
6 个回答
1
装饰器,也叫做派语法。它的作用是让你可以用另一个函数来“装饰”一个函数。你之前已经见过用staticmethod()和classmethod()来装饰函数。派语法让这个过程变得更简单,更容易使用和扩展。
1
这个特定的装饰器看起来是来自Django框架的。
你可以通过阅读Django的文档来更好地理解这个装饰器。
31
这是一种装饰器语法。
一个函数的定义可以被一个或多个装饰器表达式包裹起来。装饰器表达式在函数定义的时候就会被计算,计算是在包含这个函数定义的范围内进行的。结果必须是一个可以调用的东西,也就是可以像函数一样使用的对象,它会用函数对象作为唯一的参数来调用。返回的值会绑定到函数名上,而不是函数对象本身。多个装饰器会以嵌套的方式应用。
所以像这样做:
@login_required
def my_function():
pass
其实就是一种更花哨的写法,和这样做是一样的:
def my_function():
pass
my_function = login_required(my_function)
想了解更多,可以查看官方文档。