python lines that start with @
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Understanding Python decorators
我在读一个django应用程序的源代码
1 2 3 4 5 | @login_required def activities(request = None,\ project_id = 0,\ task_id = 0,\ ... |
以@开头的行是什么意思?
是个装饰工。它所做的基本上是包装函数。它与此代码等效:
1 2 3 4 5 | def activities(request = None,\ project_id = 0,\ task_id = 0,\ ... activities = login_required(activities) |
它用于检查函数参数(在本例中是
它是一个修饰器,它是Python中修改另一个函数行为的一种特殊类型的函数(在某些情况下是类)。请参阅本文。
1 2 3 | @decorator def my_func(): pass |
只是一种特殊的语法
1 2 3 | def my_func(): pass my_func = decorator(my_func) |
请查看python装饰说明。它有一个惊人的答案可以解释一切。
它是一个装饰工。它是一种合成糖,用于:
1 2 3 4 5 6 | def activities(request = None,\ project_id = 0,\ task_id = 0,\ ... activities = login_required(activities) |