可能重复:
了解Python装饰器
我正在阅读django应用程序源代码,我发现了这一点
@login_required
def activities(request = None,\
project_id = 0,\
task_id = 0,\
...
Run Code Online (Sandbox Code Playgroud)
以@开头的那条线是什么意思?
这是一个装饰.它的作用基本上是包装功能.它与此代码等效:
def activities(request = None,\
project_id = 0,\
task_id = 0,\
...
activities = login_required(activities)
Run Code Online (Sandbox Code Playgroud)
它用于检查函数参数(在这种情况下request.session),修改参数(它可能给函数提供其传递的参数),也许还有其他一些东西.