1

有人可以向我解释这两个代码块之间的区别。第一个有效,而后者抛出我在标题中指出的错误。

def login_required(method):
@functools.wraps(method)
def wrapper(*args, **kwargs):
    if 'username' in flask.session:
        return method(*args, **kwargs)
    else:
        flask.flash("A login is required to see the page!")
        return flask.redirect(flask.url_for('index'))
return wrapper

def login_required(method):
@functools.wraps(method)
def wrapper(*args,**kwargs):
    if "username" in flask.session:
        return method(*args,**kwargs)
    else:
        flask.flash("A login is required to see the page!")
        return flask.redirect(flask.url_for('index'))
    return wrapper
4

1 回答 1

2

在第一个代码示例中,您在wrapper函数末尾正确地返回了login_required函数。

在第二个代码示例中,您已经了解了函数本身的return wrapper 内部。wrapper只需去除最后一行,您就应该准备就绪。

于 2012-11-20T06:42:32.243 回答