gpt4 book ai didi

python - 在 Python 中为函数装饰器创建别名

转载 作者:行者123 更新时间:2023-12-01 04:20:04 24 4
gpt4 key购买 nike

在Python中,函数装饰器又是一等公民的函数,这创造了灵活分配和传递的期望。在下面的例子中

def auth_token_not_expired(function):
@auth_token_right
def wrapper(req):
# Some validations
return function(req)
return wrapper

现在我尝试将此装饰器函数作为别名分配给另一个变量

login_required = auth_token_not_expired

检查分配成功后,但是当我使用 @login_required 语法调用它时,它会导致 NameError

Exception Type: NameError
Exception Value:
name 'login_required' is not defined

我们如何将这个 login_required 变量也注册为装饰器?

最佳答案

您处于错误的范围内。

改编自 How to make a chain of function decorators? 的示例

def makeitalic(fn):
def wrapped():
return "<i>" + fn() + "</i>"
return wrapped

@makeitalic
def hello():
return "hello world"

hello() ## returns <i>hello world</i>

现在做作业:

mi = makeitalic

@mi
def helloit():
return "hello world"

helloit() ## returns <i>hello world</i>

关于python - 在 Python 中为函数装饰器创建别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33855304/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com