1. 程式人生 > >Python實現跨檔案全域性變數的方法

Python實現跨檔案全域性變數的方法

原文地址:

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