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

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

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

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

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

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

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

這是一個Python裝飾器,通過@語法調用,在一個函數(shù)外層再包裹一層,這里相當于給函數(shù)添加內部變量。可以這樣來使用這個裝飾器,比如我們想實現(xiàn)上面的想法,在foo函數(shù)中添加一個計數(shù)器,有

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

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

實例擴展:

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

__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í)行輸出結果為:

[1, 2]
[1, 2]

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

相關文章

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

    pycharm顯示遠程圖片的實現(xiàn)

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

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

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

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

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

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

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

    穩(wěn)扎穩(wěn)打學Python之容器 可迭代對象 迭代器 生成器專題講解

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

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

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

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

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

    圖文詳解Python中模塊或py文件導入(超詳細!)

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

    安裝python依賴包psycopg2來調用postgresql的操作

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

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

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

最新評論