欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python動態(tài)加載變量示例分享

 更新時(shí)間:2014年02月17日 14:54:54   作者:  
這篇文章主要介紹了python動態(tài)加載變量示例,需要的朋友可以參考下

眾所周知,程序在啟動后,各個(gè)程序文件都會被加載到內(nèi)存中,這樣如果程序文本再次變化,對當(dāng)前程序的運(yùn)行沒有影響,這對程序是一種保護(hù)。

但是,對于像python這樣解釋執(zhí)行的語言,我們有時(shí)候會用到“from 模塊 import 變量名”這樣的形式,如果這個(gè)變量直接被定義在文件當(dāng)中,那么這些變量在程序開始時(shí)就會被定義、賦值,運(yùn)行過程中值不變。如果打算在運(yùn)行過程中對這個(gè)模塊進(jìn)行重寫,那么更改后的變量值是無法被使用的。

對于這個(gè)問題,可以換一種思路,將這個(gè)模塊中的變量定義在函數(shù)里,而函數(shù)是在程序運(yùn)行的時(shí)候動態(tài)執(zhí)行的,這樣就能夠獲取到變量的最新值。下面是例子:

首先,不使用函數(shù)的情況: 

復(fù)制代碼 代碼如下:

#model1.py
p_hello = 'hello world!'

#test1.py
from model1 import p_hello
file = open('model1.py', 'w')
file.write("p_hello = '%s!'"%('hello you'))
file.close()
print p_hello

這樣,執(zhí)行test1.py的時(shí)候,出現(xiàn)的結(jié)果仍然是'hello world',而非‘hello you',說明變量已經(jīng)加載到內(nèi)存中,盡管該模塊的文件在硬盤上已經(jīng)被重寫。

接下來,使用函數(shù)的情況:

復(fù)制代碼 代碼如下:

#model1.py
def rule():
    p_hello = 'hello world!'
    return locals()

#test1.py
from model1 import rule
file = open('model1.py', 'w')
file.write('def rule():\n')
file.write("    p_hello = '%s!'\n"%('hello you'))
file.write("    return locals()\n")
file.close()
p_hello = rule()['p_hello']
print p_hello

這樣,print出來的結(jié)果就是hello you 了,因?yàn)樵谶\(yùn)行的時(shí)候,先執(zhí)行了一遍這個(gè)函數(shù),再通過函數(shù)獲取了這個(gè)變量,這樣就會獲得新值。

相關(guān)文章

  • Python實(shí)現(xiàn)PS濾鏡中馬賽克效果示例

    Python實(shí)現(xiàn)PS濾鏡中馬賽克效果示例

    這篇文章主要介紹了Python實(shí)現(xiàn)PS濾鏡中馬賽克效果,涉及Python基于skimage庫的圖形馬賽克效果相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2018-01-01
  • 分析Python中解析構(gòu)建數(shù)據(jù)知識

    分析Python中解析構(gòu)建數(shù)據(jù)知識

    本篇文章給大家講述一下Python中解析構(gòu)建數(shù)據(jù)知識的相關(guān)內(nèi)容,有需要的朋友跟著學(xué)習(xí)下。
    2018-01-01
  • 加速Python代碼執(zhí)行利器使用實(shí)例探究

    加速Python代碼執(zhí)行利器使用實(shí)例探究

    這篇文章主要為大家介紹了加速Python代碼執(zhí)行的利器使用實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • 封裝Detours用于Python中x64函數(shù)hook詳解

    封裝Detours用于Python中x64函數(shù)hook詳解

    Detours是微軟發(fā)布的一個(gè)API hook框架,同時(shí)支持x86和x64,看文檔說也支持ARM和ARM64的Windows,這篇文章主要介紹了封裝Detours用于Python中x64函數(shù)hook,需要的朋友可以參考下
    2023-12-12
  • Python正則表達(dá)式中的'r'用法總結(jié)

    Python正則表達(dá)式中的'r'用法總結(jié)

    正則表達(dá)式即使用一個(gè)字符串來描述、匹配一系列某個(gè)語法規(guī)則的字符串,python中r作用是除去''里面轉(zhuǎn)意字符,在pyhton自動化中比較常用的,下面這篇文章主要給大家介紹了關(guān)于Python正則表達(dá)式中的'r'用法總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • 新一代Python包管理工具

    新一代Python包管理工具

    這篇文章主要介紹了新一代Python包管理工具,Python包管理工具,一般就會想到想到pip、conda等經(jīng)典工具,本篇文章要介紹的是一款新穎的Python包管理工具pdm,需要的小伙伴可以參考一下
    2022-02-02
  • python實(shí)現(xiàn)桌面托盤氣泡提示

    python實(shí)現(xiàn)桌面托盤氣泡提示

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)桌面托盤氣泡提示,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Python中的map、reduce和filter淺析

    Python中的map、reduce和filter淺析

    這篇文章主要介紹了Python中的map、reduce和filter,用實(shí)例來理解這3個(gè)函數(shù),需要的朋友可以參考下
    2014-04-04
  • 淺談pyqt5在QMainWindow中布局的問題

    淺談pyqt5在QMainWindow中布局的問題

    今天小編就為大家分享一篇淺談pyqt5在QMainWindow中布局的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • pandas抽取行列數(shù)據(jù)的幾種方法

    pandas抽取行列數(shù)據(jù)的幾種方法

    這篇文章主要介紹了pandas抽取行列數(shù)據(jù)的幾種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12

最新評論