每当我用下面的代码片段执行代码时,它都能很好地工作
def set_globvar_to_one():
global globvarq
globvarq = 2
def print_globvar():
print(globvarq)
set_globvar_to_one()
print_globvar()
但是,在我的例子中,我需要使用exec命令执行这个代码段,因为我的代码是动态的。 所以,我试着跟随
def set_globvar_to_one():
exec(compile("global globvarq","setglobal","exec"))
exec(compile("globvarq = 2","setglobal","exec"))
def print_globvar():
eval(compile("print(globvarq)","setglobal","eval"))
set_globvar_to_one()
print_globvar()
这段代码抛出了以下错误
Traceback (most recent call last):
print_globvar()
eval(compile("print(globvarq)","setglobal","eval"))
File "setglobal", line 1, in <module>
NameError: name 'globvarq' is not defined
如何从一个方法使变量成为全局变量,并在另一个方法中使用相同的变量
我不确定您实际想要实现什么,但这符合您的预期:
相关问题 更多 >
编程相关推荐