python多模組檔案共享變數

2021-10-05 08:55:23 字數 1274 閱讀 3315

有多個檔案,在任意乙個檔案中修改,在其他檔案中訪問的都是修改之後的值;

(1)用乙個檔案儲存變數

這個思路沒問題,但在乙個檔案中修改後,在另乙個檔案中訪問時還是原來的內容。

# 定義檔案a.py

x = 0

b.py

import a

a.x = 10

# 執行該檔案

c.py

import a

print(a.x)

# 執行結果還是0

可能我的**有問題吧,還是不能滿足我的需求

(2)os.environ

注:os.envirion只能儲存字串型別;

驗證:

a.py

# 格式:os.environ['環境變數名稱']='環境變數值

os.environ["now"] = 'aaa'

b.py

# 設定並執行

os.environ["now"] = time.strftime("%y-%m-%d %h:%m:%s")

c.py

print(os.environ["now"])

# 結果仍然是aaa

(3)

首先配置config.py模組,config需要設定get_***和set_***的方法提供對外的介面。

config.py

class global_var:

'''需要定義全域性變數的放在這裡,最好定義乙個初始值'''

name = 'my_name'

# 對於每個全域性變數,都需要定義get_value和set_value介面

def set_name(name):

global_var.name = name

def get_name():

return global_var.name

然後在其他模組引用:

test.py

import config

# 引用全域性變數

name = config.get_name()

# 修改全域性變數

config.set_name('new_name')

# 檢視修改後的全域性變數

print(config.get_name())

這個不行,這測試結果還是在乙個檔案中修改檢視的。

Python 中的跨模組共享變數

這方法也是官方檔案中faq中給出的方法。在單個程式中跨模組共享資訊的規範方法是建立乙個特殊模組 通常稱為config或cfg 只需在應用程式的所有模組中匯入配置模組 然後該模組可用作全域性名稱。因為每個模組只有乙個例項,所以對模組物件所做的任何更改都會反映在任何地方。例如 config.py x 0...

C extern定義多檔案共享全域性變數

我覺得題主需要的回答是 把變數定義在函式外面 比如這樣 include include std string msg 這個就叫全域性變數 intmain 不過呢,這麼做以後你會逐漸逐漸遇到各種問題,比如說多個.cpp檔案都要用到同乙個全域性變數咋辦?你需要做的是在乙個.cpp裡定義這個變數,然後在標...

核心模組共享變數例項

您的核心必須已經啟用這些選項進行了編譯 loadable module support enable loadable module support module unloading module versioning support experimental automatic kernel mo...