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

时间:2009-06-27 22:03:20

标签: python syntax

@在Python中意味着什么?

示例:@login_required

6 个答案:

答案 0 :(得分:30)

这是装饰器语法。

  

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

所以做这样的事情:

@login_required
def my_function():
    pass

这只是一种奇特的方式:

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

有关详情,请查看the documentation

答案 1 :(得分:1)

答案 2 :(得分:1)

装饰者,也称为pie syntax。它允许您使用其他功能“装饰”一个功能。你已经使用staticmethod()和classmethod()进行了装饰。使用pie语法可以更轻松地访问和扩展。

答案 3 :(得分:1)

如果您提出此类问题,您可能会对其他hidden features of Python感兴趣。

答案 4 :(得分:1)

那个特定的装饰器看起来像是来自Django。

通过阅读有关该装饰器的Django documentation,可以帮助您更好地理解。

答案 5 :(得分:0)

相关问题