我有一段这样的代码:
terms = {}
while 1:
terms[raw_input('input latin: ')] = raw_input('input meaning: ')
我原本期望先输入一个拉丁词,然后给它翻译,然后将其添加到字典中。
然而,我被提示:
$ python latinvocab.py
input meaning:
注意首先要求翻译,而不是拉丁文。
显然,绕过这种方法的方法是引入一些变量,或许可以:
terms = {}
while 1:
latin = raw_input('input latin: ')
translation = raw_input('input meaning: ')
terms[latin] = translation
但是上面的代码发生了什么?
答案 0 :(得分:3)
赋值语句的右侧始终在左侧之前进行评估,如所描述的(尽管不完全明确)here。这很自然,因为在x = someFunction()
这样的作业中,它必须先评估someFunction()
才能将其值分配给任何内容。