1

これら 2 つのコード ブロックの違いを説明してください。最初のものは機能しますが、後者はタイトルで示したエラーをスローします。

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ます。

2番目のコードサンプルでは、​​関数自体のreturn wrapper 内部があります。wrapperその最後の行をデントするだけで、すべて設定されます。

于 2012-11-20T06:42:32.243 に答える