Python中的`@`是什么意思?

5 投票
6 回答
2436 浏览
提问于 2025-04-15 12:32

在Python中,@符号的意思是什么呢?

比如说:@login_required,等等。

6 个回答

1

装饰器,也叫做派语法。它的作用是让你可以用另一个函数来“装饰”一个函数。你之前已经见过用staticmethod()和classmethod()来装饰函数。派语法让这个过程变得更简单,更容易使用和扩展。

1

这个特定的装饰器看起来是来自Django框架的。

你可以通过阅读Django的文档来更好地理解这个装饰器。

31

这是一种装饰器语法。

一个函数的定义可以被一个或多个装饰器表达式包裹起来。装饰器表达式在函数定义的时候就会被计算,计算是在包含这个函数定义的范围内进行的。结果必须是一个可以调用的东西,也就是可以像函数一样使用的对象,它会用函数对象作为唯一的参数来调用。返回的值会绑定到函数名上,而不是函数对象本身。多个装饰器会以嵌套的方式应用。

所以像这样做:

@login_required
def my_function():
    pass

其实就是一种更花哨的写法,和这样做是一样的:

def my_function():
    pass
my_function = login_required(my_function)

想了解更多,可以查看官方文档

撰写回答