0

エラーチェックに進む前に、その直後にすべての空白を削除したい、それ自体で複数回入力を要求する関数 (テキストベースのゲーム) があります。

冗長性を減らすために、両方を実行する別の関数を作成し、変数を次のように返すことを考えました。

def startGame():
    print("1, 2 or 3?")
    response = response()

def response():
    a = raw_input()
    a = a.strip()
    return a

startGame()

問題は、私が取得し続けることです:

UnboundLocalError: ローカル変数 'response' が割り当て前に参照されました。

response()response にはの戻り値が割り当てられるため、これは意味がありません。
私は何が欠けていますか?これを行う簡単な方法はありますか?

4

1 に答える 1

7

ローカル変数にresponse 名前を付けました。それはできません。グローバルresponse()関数をマスクします。

ローカル変数または関数の名前を変更します。

def get_response():
    # ...


response = get_response()

また

def response():
    # ....

received_response = response()
于 2013-05-15T13:15:02.643 に答える