如何使PyCharm在Python控制台中显示脚本实际使用的全局变量?

如何使PyCharm在Python控制台中显示脚本实际使用的全局变量?,python,debugging,pycharm,global-variables,watch,Python,Debugging,Pycharm,Global Variables,Watch,我使用PyCharm中的Python控制台运行脚本,希望它显示脚本本身正在使用的全局变量。但不知何故,它似乎使用了一些不同的集合来处理/不同的范围/名称空间 下面是一个示例脚本: def addb(): global b b=1 def checkb(): print('b' in globals()) 我进入“运行>编辑配置…”myscript'并选中“使用Python控制台运行”,然后按Run-Python控制台打开-选中ShowVariables按钮,一些全局变

我使用PyCharm中的Python控制台运行脚本,希望它显示脚本本身正在使用的全局变量。但不知何故,它似乎使用了一些不同的集合来处理/不同的范围/名称空间

下面是一个示例脚本:

def addb():
    global b
    b=1

def checkb():
    print('b' in globals())
我进入“运行>编辑配置…”myscript'并选中“使用Python控制台运行”,然后按Run-Python控制台打开-选中ShowVariables按钮,一些全局变量的列表出现在右侧。然后我在提示符中写入,并得到以下响应:

>>>'b' in globals()
False
>>>checkb()
False
>>>addb()
>>>checkb()
True
>>>'b' in globals()
False
一切正常,右窗格的变量列表中也没有“b”变量。然后我写下并得到了这样的回答:

>>>'b' in globals()
False
>>>checkb()
False
>>>addb()
>>>checkb()
True
>>>'b' in globals()
False
此外,在右窗格的变量列表中仍然没有“b”变量。当然,这更进一步。这个变量显然是存在的,并且对于模块内的函数和方法具有适当的值,但对于Python控制台则没有。这是这种行为最明显的例子。当我使用一些函数来更改全局变量的状态并在控制台中使用它们时,它会更进一步,并带来不希望的结果。变量在脚本的“内部”更改其值,但在控制台中保持不变,等等

我希望所有实际脚本全局变量的状态在Python控制台右窗格的变量列表中可见,并且可以从控制台访问

>>>addb()
>>>'b' in globals()
会让步

True
我在Python自己的控制台中直接用

python -i test.py
就像我上面所说的那样,拥有我所期望的。所以这正是Python控制台的问题

它看起来完全像一个bug行为,但我真不敢相信它是如此,因为它太大,太明显,以至于我没有注意到,所以我只是相信我错过了一些东西,并决定先在这里提问。在谷歌也找不到任何与此案相关的信息,所以我就呆在这里。如果您能提供任何关于它的童车性质的指导或确认,我将不胜感激,这样我就可以提出一个问题。请让我知道,如果你不能复制这个问题以及


我使用PyCharm 2018.3.4(社区版)Build#PC-183.5429.31,于2019年1月29日构建,以及Python 3.7.2。

我不知道你是如何在PyCharm中运行这个东西的,但看起来你正在检查一个不同于中定义的
addb
checkb
的全局名称空间。“全局”变量是Python中的模块级变量;每个模块都有自己的全局变量。@user2357112是的,但PyCharm会在开始时以某种方式继承它,如果我在脚本中调用
addb
,我会在控制台启动时在右侧窗格中看到更改。我想知道如何正确地调整它,使其在工作期间保持在同一名称空间中。因此,这只是PyCharm中的一个bug。不幸的是,它仍然存在。也许试着在家里引起别人的注意。