以@开头的python行

Aug*_*gie 1 python

可能重复:
了解Python装饰器

我正在阅读django应用程序源代码,我发现了这一点

@login_required
def activities(request = None,\
            project_id = 0,\
            task_id = 0,\
            ...
Run Code Online (Sandbox Code Playgroud)

以@开头的那条线是什么意思?

Gab*_*aru 5

这是一个装饰.它的作用基本上是包装功能.它与此代码等效:

def activities(request = None,\
            project_id = 0,\
            task_id = 0,\
            ...
activities = login_required(activities)
Run Code Online (Sandbox Code Playgroud)

它用于检查函数参数(在这种情况下request.session),修改参数(它可能给函数提供其传递的参数),也许还有其他一些东西.