【发布时间】:2017-08-22 18:24:58
【问题描述】:
我用python(3.6.2版)编写以下代码:
def test():
temp = 'c=1'
exec(temp)
print(c)
test()
运行时出现以下错误:
NameError: name 'c' is not defined
但是当在代码下面运行时:
temp='a=1'
exec(temp)
print(a)
它打印 1。
我该如何解决这个问题?
【问题讨论】:
-
你没有一个名为 c 的变量,你将如何打印它?, print(c) 引发错误。
-
我无法在 python2.7 或 python3 中重现您的错误。它每次打印
1。 -
我也无法重现...
-
我已经在 Python 3.6.1 中复制了它。
-
Python 3 的
exec()的文档非常清楚:"不应尝试修改默认的本地字典。如果您需要查看代码对函数 exec() 返回后的局部变量。”(全局变量是另一回事)
标签: python