spyder中python 3的ipython控制台上的变量问题

问题描述

尽管到目前为止我已经使用python 2.7,但最近我正在考虑主要使用python3
但是我在python 3上遇到了如下可变问题。

例如,以下代码可在python 2中正常工作。

#print a 
a=1

我在spyder 3.3.6的ipython控制台(python 2.7.16)上多次运行了名为test.py代码。 第一次运行后,我在第一行中删除#。 然后,ipython控制台输出1的值a

但是,当我在spyder 4.0.1的ipython控制台(python 3.7.6)上运行上述代码(第一行用#print(a)替换)时,ipython控制台输出一条错误消息, NameError: name 'a' is not defined
当我在ipython控制台中输入a时,控制台将输出1

我可以在python 3环境中做与在python 2中相同的事情吗?

谢谢。

解决方法

在运行脚本时有一个设置,称为“在控制台的命名空间中运行,而不是空的”。 如果选中该框,它将变量保留在名称空间中。