我有一个函数(基于文本的游戏),在整个过程中多次要求输入,我希望在进行错误检查之前立即删除所有空白。
为了减少冗余,我想到了另一个函数来做这两件事,然后返回变量如下:
def startGame():
print("1, 2 or 3?")
response = response()
def response():
a = raw_input()
a = a.strip()
return a
startGame()
问题是我一直得到:
UnboundLocalError:赋值前引用了本地变量'response'。
这对我来说没有意义,因为响应被分配给response()
的返回值。
我错过了什么?有更简单的方法吗?
将本地变量命名为response
too;你不能这样做,它会屏蔽全局response()
函数。
重命名局部变量或函数:
def get_response():
# ...
response = get_response()
或
def response():
# ....
received_response = response()