Python實現跨檔案全域性變數的方法
阿新 • • 發佈:2019-02-12
原文地址:
https://www.cnblogs.com/rnckty/p/7722603.html
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