小编Dol*_*ius的帖子

如何使全局变量在 Spyder 中的函数内工作?

我无法在 Spyder 4.0.0 中与 Python 3.8、Windows 10 交互地修改全局变量。最近一定有更改,因为这以前是可能的。

我有以下示例文件:

x = 5
def IncreaseX():
    global x
    x += 1

print(x)
IncreaseX()
print(x)
Run Code Online (Sandbox Code Playgroud)
  1. 当我运行它(使用 F5)时,我得到了所需的输出:
In [1]: runfile('TestGlobals.py', wdir='D:')
5
6
Run Code Online (Sandbox Code Playgroud)
  1. 但是,如果我尝试从嵌入式 Ipython 控制台运行 IncreaseX() 函数,它不会更改全局变量的值:
In [2]: x
Out[2]: 6

In [3]: IncreaseX()

In [4]: x
Out[4]: 6
Run Code Online (Sandbox Code Playgroud)
  1. 如果我选择示例的最后 3 行并运行它们(使用 F9),也会发生同样的情况:
In [5]: print(x)
   ...: IncreaseX()
   ...: print(x)
6
6
Run Code Online (Sandbox Code Playgroud)
  1. 如果我选择示例文件的所有行并运行它们(使用 F9),则行为会有所不同:
In [6]: x = 5
   ...: def IncreaseX():
   ...:     global x
   ...:     x += 1
   ...: 
   ...: …
Run Code Online (Sandbox Code Playgroud)

python global interactive function spyder

6
推荐指数
1
解决办法
3407
查看次数

标签 统计

function ×1

global ×1

interactive ×1

python ×1

spyder ×1