以@开头的python行

标签 python decorator python-decorators

<分区>

Possible Duplicate:
Understanding Python decorators

我在阅读 django 应用程序源代码时发现了这个

@login_required
def activities(request = None,\
            project_id = 0,\
            task_id = 0,\
            ...

以@开头的行是什么意思?

最佳答案

它是一个装饰器。它所做的基本上是包装函数。它等效于此代码:

def activities(request = None,\
            project_id = 0,\
            task_id = 0,\
            ...
activities = login_required(activities)

它用于检查函数参数(在本例中为 request.session),修改参数(它可能会为函数提供其他参数而不是它传递的参数),也许还有其他一些东西。

关于以@开头的python行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6711762/

相关文章:

python - 将 64 位浮点格式字符串转换为 float

python - 用大括号包裹数字的正则表达式?

Python:创建虚拟导入路径

typescript - typescript 属性装饰器可以为类设置元数据吗?

python : Using Decorators to write Logs on a file

python - 有@staticmethod 和没有它的区别

python - 'numpy.ndarray' 对象没有属性 'read'

python - 如何从装饰器中获取对实例方法的引用

typescript 装饰器困惑

python - 装饰器类和缺少必需的位置参数