在python中使用函式為全域性變數賦值時遇到的問題和解決方法。
最近在寫python**呼叫函式來為全域性變數賦值時遇到了乙個問題。這段簡單的**可以表述這個問題:
執行時,這一段**並沒有生效,因為當呼叫
load_data_into_list函式後列表仍然是空的,但我一直沒有意識到這個問題直到把我這個列表(包含一些新資料)存進同乙個檔案。我發現舊資料被清除了,僅有新資料被保留下來。所以我做了一些除錯,發現當我呼叫這個函式的時候,列表還是空的。因為雖然我想要把資料載入進全域性變數
load_data_into_list,但是python創造了另乙個僅僅在這乙個函式區域性範圍內的變數list_with_data。很幸運,這個問題可以被輕易解決:
global關鍵字可以使直譯器知道我想呼叫全域性變數。
但當你有許多的全域性變數時,那麼給他們寫很多個global語句去呼叫全域性變數是非常困難的。當編碼中有很多的全域性變數時,我會把他們放在了乙個類裡,就像這樣:
通過呼叫這個類,你就再也不需要使用global關鍵字了,這避免了你寫十行**只為了告訴直譯器你想要呼叫全域性變數,大大節省了時間。如果真的遇到好的同事,那算你走運,加油,抓緊學到手。
python資源分享企鵝圈:1055012877
包含python, 爬蟲等人工智慧軟體,以及網路安全、資料探勘、python web等python技巧的製作方法。
打造從零基礎到專案開發上手實戰全方位解析!
py 全域性變數
使用全域性變數分兩步走 1.定義 2.使用時再次宣告 即全域性變數在使用之前就要宣告,宣告全域性變數使用關鍵字 global,然後在使用該全域性變數之前,需要再次宣告示例 global val 在使用前初次宣告 val 10 給全域性變數賦值 def xy global val 再次宣告,表示在這裡...
ajax給全域性變數賦值問題解決
如果要在 ajax 裡面給全域性變數賦值,需要改為同步操作,即加上async false,就可以了 error事件返回的第乙個引數xmlhttprequest xmlhttprequest.readystate 狀態碼的意思 0 未初始化 還沒有呼叫send 方法 1 載入 已呼叫send 方法,正...
python 全域性變數
應該盡量避免使用全域性變數。不同的模組都可以自由的訪問全域性變數,可能會導致全域性變數的不可預知性。對全域性變數,如果程式設計師甲修改了 a的值,程式設計師乙同時也要使用 a,這時可能導致程式中的錯誤。這種錯誤是很難發現和更正的。全域性變數降低了函式或模組之間的通用性,不同的函式或模組都要依賴於全域...