Python 重写函数内部的全局变量不适用于Spyder 4

Python 重写函数内部的全局变量不适用于Spyder 4,python,pandas,dataframe,spyder,Python,Pandas,Dataframe,Spyder,我尝试从函数中重写全局定义的数据帧。 不知何故,全局值不会改变,在函数中打印数据帧与预期值一起工作 import pandas as pd rawData = pd.read_csv("music.csv") appTitles =pd.DataFrame #also with pd.DataFrame() wont get affected def loadTitles(df=rawData): global appTitles appTitles = pd.DataFra

我尝试从函数中重写全局定义的数据帧。 不知何故,全局值不会改变,在函数中打印数据帧与预期值一起工作

import pandas as pd

rawData = pd.read_csv("music.csv")
appTitles =pd.DataFrame #also with pd.DataFrame() wont get affected

def loadTitles(df=rawData):
    global appTitles
    appTitles = pd.DataFrame({'Title' : df['title']})
    print(appTitles) 
return appTitles #(second 'print' to screen)

#RUN FILE
#CALL FUNCTION: loadTitles() #-> No Variable appTitles
变量资源管理器中的appTitles变量保持为空或不存在(取决于pd.DataFrame/pd.DataFrame()的使用),谢谢

EDIT:在@4turkuaz评论说他的环境中一切正常后,我尝试了Windows cmd中的Python控制台,以及使用Python 3.7.4和IPython 7.8.0的Spyder3,在那里一切正常

只有在带有Python 3.7.5和IPython 7.10.1的Spyder4上,它才不起作用。也许是虫子?我不知道

编辑:将Spyder4降级为Python 3.7.4和IPython 7.8.0并没有解决问题。我假设Spyder4或Anacona环境中的某些东西,即使我反复安装它也不正确。

(此处为Spyder maintainer)您需要转到菜单

运行>每个文件的配置


并在控制台的名称空间中激活名为
的选项,而不是空的
,以便您能够修改代码中的全局变量。

实际上,在我使用Python 3.6的环境中,它如您所期望的那样工作。我使用Spyder作为IDE使用3.7。您可以将其降级到3.6并重试吗?只需在windows上的Python控制台中尝试,它就如您所期望的那样工作。奇怪。非常感谢你,在激活该选项后,它现在按计划工作,但即使我再次取消选中它。我不知道这是否是通缉犯的行为。