def fun():
exec('b=1+1')
print(b)
fun()
#执行时报变量b不存在
但将代码改为全局时不报错,即:
exec(‘b=1+1’)
print(b)
原因:
exec内的变量会在exec内声明为全局变量,但fun()内的变量为局部变量,对exec内的变量不可见
解决方法:
def fun()
lc=locals()
exec('b=1+1')
b=lc['b']
print(b)
fun()
def fun():
exec('b=1+1')
print(b)
fun()
#执行时报变量b不存在
但将代码改为全局时不报错,即:
exec(‘b=1+1’)
print(b)
原因:
exec内的变量会在exec内声明为全局变量,但fun()内的变量为局部变量,对exec内的变量不可见
解决方法:
def fun()
lc=locals()
exec('b=1+1')
b=lc['b']
print(b)
fun()