使用exec()方法执行外部python代码时:
i = 0
exec("i = 99nprint(i)")
print(i)
输出:
99
99
执行相同代码时期望输出:
99
0
尽管我认识到这种方法的不安全性,但HALF9000在注释中提供了一种适合我需要的方法。在exec方法中设置全局和局部变量为空解决了我的问题:
i = 0
exec("i = 99nprint(i)",{},{})
print(i)
输出:
99
0
您的代码:
i = 0 #i=0
exec("i = 99nprint(i)") #i=99
print(i) #i=99
Output:
99
99
逐行执行:
新代码:
exec("i = 99nprint(i)") #i=99
i = 0 #i=0
print(i) #i=0
Output:
99
0
解释:Python逐行执行代码,在你的代码中,你声明0,然后更新值99,然后打印2次,如果你想要输出,那么你可以初始化99并先打印它,然后再初始化0。