[英]Override global variable inside function not working with 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
變量資源管理器中的 appTitles 變量保持為空或不存在(取決於 pd.DataFrame/pd.DataFrame() 的使用)謝謝!
編輯:在@4turkuaz 評論說在他的環境中一切都按預期工作后,我在 Windows cmd 中嘗試了 Python 控制台,還在使用 Python 3.7.4 和 IPython 7.8.0 的 Spyder3 上嘗試了 Python 控制台,其中一切正常。
僅在帶有 Python 3.7.5 和 IPython 7.10.1 的 Spyder4 上它不起作用。 也許是一個錯誤? 我不知道...
編輯:將Spyder4 降級到 Python 3.7.4 & IPython 7.8.0 並沒有解決問題。 我假設 Spyder4 或 Anaconca Environment 中的某些東西即使我一遍又一遍地安裝它是不正確的。
(這里是 Spyder 維護者)你需要去菜單
Run > Configuration per file
並激活名為Run in console's namespace instead of an empty one
的選項,以便您能夠修改代碼中的全局變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.