我有以下python2代码,它给出了一个NameError:
def myfunc():
myvar=50
print myvar
print eval('myvar')
a = 'myvar'
print { a:eval(a) }
print { a:a for a in ['myvar'] }
print { a:eval(a) for a in ['myvar'] }
myfunc()
当我现在用python2执行这个python代码时,我得到以下输出:
50
50
{'myvar': 50}
{'myvar': 'myvar'}
Traceback (most recent call last):
File "tester.py", line 13, in <module>
myfunc()
File "tester.py", line 11, in myfunc
print { a:eval(a) for a in ['myvar'] }
File "tester.py", line 11, in <dictcomp>
print { a:eval(a) for a in ['myvar'] }
File "<string>", line 1, in <module>
NameError: name 'myvar' is not defined
备注:这是在Mac上运行的。。。 当我在函数外运行代码段时,它会按预期工作。。。你知道吗
你可以通过做。。。你知道吗
这里可以找到一个解释:eval fails in list comprehension
相关问题 更多 >
编程相关推荐