【发布时间】:2021-08-25 03:30:20
【问题描述】:
我是 Python 的初学者,但我遇到了一个我无法理解的问题。我试图用 exec() 定义一个变量,然后打印它。它运作良好。但是当我在函数中执行相同的代码时,它不起作用......
例子:
def fonct():
possibilite = [0,1,2,3]
testc = 0
testl = 1
commande = "proba"+str(testc+1)+str(testl)+" = possibilite"
exec(commande)
print(commande)
print(proba11)
同样的事情,但在函数中没有结果,命令 print(proba11) 返回 [0,1,2,3] 所以它工作。但对于我得到这个的例子:
proba11 = possibilite
NameError: name 'proba11' is not defined
没有关于全局或本地的故事,一切都是本地的......
【问题讨论】:
-
没有名为 proba11 的变量,这就是您出现此错误的原因。首先,如果要打印,定义proba11
-
但是当我执行相同的代码时,没有定义 proba11 但不在函数中它正在工作。所以我想不定义也可以,我试试,谢谢。
-
proba11 = possibilite是因为这个代码commande = "proba"+str(testc+1)+str(testl)+" = possibilite"而出现的。它只是一个字符串,不是变量 -
所以不能打印出来
-
好吧,我试过了,在函数的第一行,我写了proba11 = [0]。并且 print(proba11) 返回 [0] 而不是 [0,1,2,3] .... 所以我认为 exec() 没有按预期工作,但我不知道为什么...我用过在其他条件下,这是我遇到问题的唯一地方......
标签: python python-3.x function exec python-exec