簡體   English   中英

覆蓋函數內的全局變量不適用於 Spyder 4

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM