什么`@`在Python中意味着什么?

omg*_*omg 3 python syntax

@Python的意思是什么?

示例:@login_required

Pao*_*ino 30

它是装饰器语法.

函数定义可以由一个或多个装饰器表达式包装.在包含函数定义的作用域中定义函数时,将评估Decorator表达式.结果必须是可调用的,以函数对象作为唯一参数调用.返回的值绑定到函数名称而不是函数对象.多个装饰器以嵌套方式应用.

所以做这样的事情:

@login_required
def my_function():
    pass
Run Code Online (Sandbox Code Playgroud)

这只是一种奇特的方式:

def my_function():
    pass
my_function = login_required(my_function)
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请查看文档.