为什么封装函数必须在闭包中返回嵌套函数的名称?

时间:2019-06-23 15:30:20

标签: python-3.x flask

我是Python和Flask的新手,所以我了解了如何使用装饰器的概念来检查用户是否从this answer登录。

    def login_required(function_to_wrap):
    @wraps(function_to_wrap)
    def wrap(*args, **kwargs):
        if "some_admin_name" in session:
            return function_to_wrap(*args, **kwargs)
        else:
            flash("\"You shall not pass!\" - Gandalf")
            return redirect(url_for("login"))
    return wrap

在这段代码中,我不明白为什么要为login_required返回换行,并且我对该代码的控制流程感到困惑...

编辑:我的问题是为什么对封闭的函数返回 wrap ,我了解装饰器的工作原理,但是为什么我需要返回wrap?

0 个答案:

没有答案