我正在复习我的 Python 并且我对某些事情有点困惑,以下代码无法按预期工作:
def a():
print "called a"
def b():
print "called b"
dispatch = {'go':a, 'stop':b}
dispatch[input()]()
当我在控制台中输入单词go时,我得到“NameError:name 'go' is not defined”,但是当我输入 'go'(带引号)时它工作正常。input() 不返回字符串吗?如果不是,那么不应该使用 str() 将输入转换为字符串吗?
当我将代码更改为:
dispatch[(str(input())]()
我仍然得到相同的行为。
注意:我使用的是 Python2.7,如果它有所作为的话。
对不起,如果这很明显,我已经有几年没有使用 Python 了!