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

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

  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