覆盖函数中的全局变量不适用于 Spyder 4



我尝试从函数中覆盖全局定义的数据帧。 不知何故,全局值不会更改,在函数中打印数据帧可以使用预期值。

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

变量资源管理器中的 appTitle 变量保持为空或不存在(取决于 pd 的使用。数据帧/pd.数据帧((( 谢谢!

编辑:在@4turkuaz评论说在他的环境中一切都按预期工作之后,我在Windows cmd中尝试了Python控制台,并在带有Python 3.7.4和IPython 7.8.0的Spyder3上尝试了Python控制台,其中一切正常。

只有在带有Python3.7.5和IPython 7.10.1的Spyder4上,它才不起作用。也许是一个错误?我不知道。。。

编辑:将Spyder4降级到Python 3.7.4和IPython 7.8.0并没有解决问题。我假设Spyder4或Anaconca环境中的某些内容,即使我一遍又一遍地安装它也是不正确的。

(Spyder 维护者在这里( 你需要去菜单

Run > Configuration per file

并激活名为Run in console's namespace instead of an empty one,以便能够修改代码中的全局变量。

相关内容

最新更新