姬長信(Redy)

python – exec()和变量范围


参见英文答案 > How does exec work with locals?????????????????????????????????????3个
我确信这已被问及答案,但我没有具体找到它:

我只是拿起Python,我不理解变量范围问题.

我已将问题简化为以下内容:

情况1:

def lev1():
   exec("aaa=123")
   print("lev1:",aaa)

lev1()

案例2:

def lev1():
   global aaa
   exec("aaa=123")
   print("lev1:",aaa)

lev1()

案例3:

def lev1():
   exec("global aaa ; aaa=123")
   print("lev1:",aaa)

lev1()

>案例1和案例2在print语句中有一个未定义的.
>案例3的工作原理.案例1和案例2中aaa实际存在于何处?
>有没有办法在没有全局声明的情况下访问案例1中的aaa?