@
在Python中意味着什么?
示例:@login_required
等
答案 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)