当我需要打印变量时,我倾向于懒惰并且经常使用"{someVariable}".format( **locals() )
。例如:
x = 10
[ "{x} {i}".format( **locals() ) for i in xrange(3) ]
输出:
['10 0', '10 1', '10 2']
但现在如果我改用发电机:
x = 10
for y in ( "{x} {i}".format( **locals() ) for i in xrange(3) ) :
print y
输出:
KeyError: 'x'
哦不!发生了什么事?