Python 模組之間傳遞變數
- 2020 年 1 月 10 日
- 筆記
最近在做實驗時發現個問題,我想在一個模組中調用另一個模組的變數,首先想到了用return
函數返回值的方法將變數作為返回值並將該變數設為全局變數,可在執行時就是報錯;
綜合借鑒了下其他部落格和評論的方法,把需要全局使用的變數定義在一個全局變數模組里,當我
在調用其他模組之前先調用一下全局變數模組,這樣就不報錯了同時也可以把其他模組的變數值返回
給我
首先定義一個全局變數模組
# global.py class global_variable: def variable_name(): global name # called.py class called_module: def called_function(): name = input('please input your variable name:') return name # main.py from global import global_variable from called import called_module global_variable.variable_name() res = called_module.called_function print(res)
這樣主文件輸出的結果就是被調用模組的變數值了,同樣也可以返回一個數據結構;
總結: 1. 全局定義變數可在函數內外定義均可;
2. 全局變數定義只在其之下起作用,對其上部無效;
3. 全局變數定義後並非一直不變,如果在其後仍有變數重新定義,變數值仍會改變;
4. 定義在函數中的全局變數,如果函數沒有被調用全局變數無效。
5. 在一個模組內定義全局變數只能在本模組內使用不能再其他模組內使用;
6. 跨模組使用全局變數需要在一個另一個模組中定義全局變數並被調用。
參考文章:http://bbs.chinaunix.net/thread-943223-1-1.html
http://www.cnblogs.com/itech/archive/2011/01/27/1945501.html