Python跨檔案全域性變數的方法
阿新 • • 發佈:2018-12-21
Python 中 global 關鍵字可以定義一個變數為全域性變數,但是這個僅限於在一個模組(py檔案)中呼叫全域性變數,在另外一個py檔案 再次使用 global x 也是無法訪問到的,因為在這個py模組中並沒有一個叫做x的變數,於是就會報錯 未定義。
借鑑global 關鍵字的思路,既然在一個檔案裡面可以生效的話,那麼我們就專門為全域性變數定義一個“全域性變數管理模組”就好了
全域性變數管理模組 globalvar.py
#!/usr/bin/python # -*- coding: utf-8 -*- def _init(): global _global_dict _global_dict = {} def set_value(name, value): _global_dict[name] = value def get_value(name, defValue=None): try: return _global_dict[name] except KeyError: return defValue
設定全域性變數 a.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import globalvar as gl
gl._init()
gl.set_value('name', 'cc')
gl.set_value('score', 90)
獲取全域性變數 b.py
#!/usr/bin/python # -*- coding: utf-8 -*- import globalvar as gl name = gl.get_value('name') score = gl.get_value('score') print("%s: %s" % (name, score))
主程式 main.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
import a
import b
然後執行主程式檔案 python main.py,得出的結果是 cc: 90