0

我有一个函数(基于文本的游戏),它在整个过程中多次要求输入,在进行错误检查之前,我想立即删除所有空格。

为了减少冗余,我想用另一个函数来做这两件事,然后像这样返回变量:

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

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

startGame()

问题是我不断得到:

UnboundLocalError:分配前引用的局部变量“响应”。

这对我来说毫无意义,因为 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 回答