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

python如何設(shè)置靜態(tài)變量

 更新時(shí)間:2020年09月07日 08:00:09   作者:愛喝馬黛茶的安東尼  
在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于python如何設(shè)置靜態(tài)變量的相關(guān)文章,有興趣的朋友們可以參考下。

眾所周知,Python語言并不支持靜態(tài)變量,比如下面這樣一個(gè)應(yīng)用場景:

void foo() {
    static int count = 0;
    count ++;
}

在Python中無法自然實(shí)現(xiàn)這個(gè)功能。換個(gè)角度來看這個(gè)問題,函數(shù)中的靜態(tài)變量其實(shí)可以看做是函數(shù)的一個(gè)內(nèi)部變量,而不是調(diào)用期間生成的局部變量。所以這里介紹一種使用裝飾器的方法給函數(shù)添加這樣的內(nèi)部變量。

def static_vars(**kwargs):
    def decorate(func):
        for k in kwargs:
            setattr(func, k, kwargs[k])
        return func
    return decorate

這是一個(gè)Python裝飾器,通過@語法調(diào)用,在一個(gè)函數(shù)外層再包裹一層,這里相當(dāng)于給函數(shù)添加內(nèi)部變量??梢赃@樣來使用這個(gè)裝飾器,比如我們想實(shí)現(xiàn)上面的想法,在foo函數(shù)中添加一個(gè)計(jì)數(shù)器,有

@static_vars(counter = 0)
def foo():
    foo.counter += 1

其實(shí)如果一定要通過內(nèi)部變量來實(shí)現(xiàn)靜態(tài)的效果,可以直接定義類來達(dá)到,但是裝飾器將很多細(xì)節(jié)略去,而且通過**kwargs可以添加任意類型,任意數(shù)目,實(shí)現(xiàn)起來相對(duì)簡單。

實(shí)例擴(kuò)展:

這里使用靜態(tài)變量目的是在類中實(shí)現(xiàn)一個(gè)靜態(tài)的隊(duì)列,這里用數(shù)組實(shí)現(xiàn),任何時(shí)候插入到隊(duì)列中的數(shù)據(jù)不會(huì)和類的實(shí)例有直接關(guān)系

__author__ = 'Administrator'
class CaptchaImage:
 def queue(self,arr=list()):
  return arr
 def InsertCode(self,code):
  self.queue().append(code)
if __name__=='__main__':
 c = CaptchaImage()
 c.InsertCode(1)
 b=CaptchaImage()
 b.InsertCode(2)
 print(b.queue())
 print(c.queue())

代碼執(zhí)行輸出結(jié)果為:

[1, 2]
[1, 2]

到此這篇關(guān)于python如何設(shè)置靜態(tài)變量的文章就介紹到這了,更多相關(guān)python設(shè)置靜態(tài)變量內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • pycharm顯示遠(yuǎn)程圖片的實(shí)現(xiàn)

    pycharm顯示遠(yuǎn)程圖片的實(shí)現(xiàn)

    這篇文章主要介紹了pycharm顯示遠(yuǎn)程圖片的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • matplotlib之pyplot模塊實(shí)現(xiàn)添加子圖subplot的使用

    matplotlib之pyplot模塊實(shí)現(xiàn)添加子圖subplot的使用

    這篇文章主要介紹了matplotlib之pyplot模塊實(shí)現(xiàn)添加子圖subplot的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 利用Python?Matplotlib繪圖并輸出圖像到文件中的方式

    利用Python?Matplotlib繪圖并輸出圖像到文件中的方式

    這篇文章主要介紹了利用Python?Matplotlib繪圖并輸出圖像到文件中的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • python flask開發(fā)的簡單基金查詢工具

    python flask開發(fā)的簡單基金查詢工具

    基于python flask開發(fā)的簡單基金查詢工具,支持大盤指數(shù)實(shí)時(shí)情況查看,總持倉實(shí)際漲幅、預(yù)估漲幅等功能,感興趣的朋友可以下載該項(xiàng)目來查看使用
    2021-06-06
  • 穩(wěn)扎穩(wěn)打?qū)WPython之容器 可迭代對(duì)象 迭代器 生成器專題講解

    穩(wěn)扎穩(wěn)打?qū)WPython之容器 可迭代對(duì)象 迭代器 生成器專題講解

    在剛開始學(xué)Python的時(shí)候,是不是經(jīng)常會(huì)聽到大佬們?cè)谥v容器、可迭代對(duì)象、迭代器、生成器、列表/集合/字典推導(dǎo)式等等眾多概念,其實(shí)這不是大佬們沒事就擱那扯專業(yè)術(shù)語來裝B,而是這些東西都得要明白的,光知道字符串、列表等基礎(chǔ)還是不夠的,尤其是在Python的數(shù)據(jù)結(jié)構(gòu)方面
    2021-10-10
  • 如何基于python實(shí)現(xiàn)不鄰接植花

    如何基于python實(shí)現(xiàn)不鄰接植花

    這篇文章主要介紹了如何基于python實(shí)現(xiàn)不鄰接植花,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Python3 利用face_recognition實(shí)現(xiàn)人臉識(shí)別的方法

    Python3 利用face_recognition實(shí)現(xiàn)人臉識(shí)別的方法

    這篇文章主要介紹了Python3 利用face_recognition實(shí)現(xiàn)人臉識(shí)別的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 圖文詳解Python中模塊或py文件導(dǎo)入(超詳細(xì)!)

    圖文詳解Python中模塊或py文件導(dǎo)入(超詳細(xì)!)

    導(dǎo)入文件目的就是為了執(zhí)行文件,下面這篇文章主要給大家介紹了關(guān)于Python中模塊或py文件導(dǎo)入的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • 安裝python依賴包psycopg2來調(diào)用postgresql的操作

    安裝python依賴包psycopg2來調(diào)用postgresql的操作

    這篇文章主要介紹了安裝python依賴包psycopg2來調(diào)用postgresql的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • 使用keras2.0 將Merge層改為函數(shù)式

    使用keras2.0 將Merge層改為函數(shù)式

    這篇文章主要介紹了使用keras2.0 將Merge層改為函數(shù)式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05

最新評(píng)論