以@开头的python行
可能重复:
了解Python装饰器
我正在阅读一个Django应用程序的源代码,我发现这一点
@login_required
def activities(request = None,
project_id = 0,
task_id = 0,
...
以@开头的行是什么意思?
请检查Python装饰器解释。 它有一个惊人的答案,将解释一切。
这是一个装饰者。 它所做的基本上是包装这个功能。 它与此代码等效:
def activities(request = None,
project_id = 0,
task_id = 0,
...
activities = login_required(activities)
它用于检查函数参数(在本例中为request.session
),修改参数(它可能会给函数以外的其他参数),也可能是其他一些东西。
它是一个装饰器,它是Python中一种特殊类型的函数(或类,在某些情况下)可以修改另一个函数的行为。 看到这篇文章。
@decorator
def my_func():
pass
实际上只是一种特殊的语法
def my_func():
pass
my_func = decorator(my_func)
链接地址: http://www.djcxy.com/p/23797.html