python跨文件使用全局變量的實(shí)現(xiàn)
Python 定義了全局變量的特性,使用global 關(guān)鍵字修飾
global key_word
但是他的一大缺陷就是只能本module 中也就是本文件中使用,跳出這個(gè)module就不行。
try 1:
使用一個(gè)更宏觀的思路,全局變量就用全局加載的模塊解決,很遺憾也是不行,
file_1:
global a a = "test"
file 2:
import file_1 print(a)
報(bào)錯(cuò)a沒(méi)有定義
try 2:
file_1:
global a a = "test"
file 2:
import file_1 print(file_1.a) file_1.a = "aaa" print(file_1.a)
這樣可以,但是如果再有一個(gè)module 想用呢?
try 2:
file_1:
global a a = "test"
file 2:
import file_1 print(file_1.a) file_1.a = "aaa" print(file_1.a)
file 2:
import file_1 import file_2 print(file_1.a) file_1.a = "aaa" print(file_1.a)
這樣就會(huì)報(bào)錯(cuò),因?yàn)閕mport 加載就會(huì)執(zhí)行一遍子module ,兩個(gè)module y引用關(guān)系死鎖了。
try 3:
最終使用公共數(shù)據(jù)結(jié)構(gòu)方式解決
file_1:
def init():
global a
a = {}
def set(arg,value):
a[arg] = value
def get(arg)
return a[arg]
file 2:
import file_1
print(file_1.a)
file_1.set("test",(test_value))
file 2:
import file_1
import file_2
file_1.init()
print(file_1.get("test"))
思路就是使用一個(gè)公共的字典的數(shù)據(jù)結(jié)構(gòu),在主module 中初始化,其他module都應(yīng)用此module,但是不重新初始化字典。
到此這篇關(guān)于python跨文件使用全局變量的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)python跨文件全局變量?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)戰(zhàn)小游戲飛機(jī)大戰(zhàn)詳解
飛機(jī)大戰(zhàn)想必是很多人童年時(shí)期的經(jīng)典游戲,我們依舊能記得抱個(gè)老人機(jī)娛樂(lè)的場(chǎng)景,下面這篇文章主要給大家介紹了關(guān)于如何利用python寫(xiě)一個(gè)簡(jiǎn)單的飛機(jī)大戰(zhàn)小游戲的相關(guān)資料,需要的朋友可以參考下2021-11-11
用gpu訓(xùn)練好的神經(jīng)網(wǎng)絡(luò),用tensorflow-cpu跑出錯(cuò)的原因及解決方案
這篇文章主要介紹了用gpu訓(xùn)練好的神經(jīng)網(wǎng)絡(luò),用tensorflow-cpu跑出錯(cuò)的原因及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
Python中Numpy和Matplotlib的基本使用指南
numpy庫(kù)處理的最基礎(chǔ)數(shù)據(jù)類(lèi)型是由同種元素構(gòu)成的多維數(shù)組(ndarray),而matplotlib 是提供數(shù)據(jù)繪圖功能的第三方庫(kù),其pyplot子庫(kù)主要用于實(shí)現(xiàn)各種數(shù)據(jù)展示圖形的繪制,這篇文章主要給大家介紹了關(guān)于Python中Numpy和Matplotlib的基本使用指南,需要的朋友可以參考下2021-11-11
基于tf.shape(tensor)和tensor.shape()的區(qū)別說(shuō)明
這篇文章主要介紹了基于tf.shape(tensor)和tensor.shape()的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06
Python中的魔法方法__repr__和__str__用法實(shí)例詳解
這篇文章主要介紹了Python中的__repr__和__str__方法,它們分別用于提供對(duì)象的官方字符串表示和用戶(hù)友好的字符串表示,通過(guò)重寫(xiě)這兩個(gè)方法,可以自定義對(duì)象的打印輸出,文中通過(guò)代碼將用法介紹的非常詳細(xì),需要的朋友可以參考下2025-02-02
Python的子線程和子進(jìn)程是如何手動(dòng)結(jié)束的?
今天給大家?guī)?lái)的是關(guān)于Python的相關(guān)知識(shí),文章圍繞著如何手動(dòng)結(jié)束Python的子線程和子進(jìn)程展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06
python如何使用python-docx調(diào)整Word文檔樣式
本文介紹了如何修改文字字體樣式、對(duì)齊樣式、行間距以及段前段后間距,并通過(guò)效果展示給出參考,適用于需要進(jìn)行文檔編輯的讀者2024-09-09

