最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

在Python中無法自然實現(xiàn)這個功能。換個角度來看這個問題,函數(shù)中的靜態(tài)變量其實可以看做是函數(shù)的一個內(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

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

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

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

實例擴(kuò)展:

這里使用靜態(tài)變量目的是在類中實現(xiàn)一個靜態(tài)的隊列,這里用數(shù)組實現(xiàn),任何時候插入到隊列中的數(shù)據(jù)不會和類的實例有直接關(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python 中的 abc 模塊之抽象類與接口

    Python 中的 abc 模塊之抽象類與接口

    在面向?qū)ο笤O(shè)計中,Python的abc模塊提供了定義抽象類和接口的結(jié)構(gòu)化方法,抽象類是不能直接實例化的類,主要用于定義接口規(guī)范,確保子類實現(xiàn)必要的方法,本文介紹了Python 中的 abc 模塊之抽象類與接口,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • 深入理解Playwright的高級功能和用法

    深入理解Playwright的高級功能和用法

    Playwright是一個強(qiáng)大而靈活的Python庫,用于自動化瀏覽器操作和測試,本文主要介紹了深入理解Playwright的高級功能和用法,具有一定的 參考價值,感興趣的可以了解一下
    2024-05-05
  • Python中對象迭代與反迭代的技巧總結(jié)

    Python中對象迭代與反迭代的技巧總結(jié)

    這篇文章將通過實例給大家分享Python中對象迭代與反迭代的技巧,對大家學(xué)習(xí)或者使用python具有一定的參考借鑒價值。有需要的下面來一起看看吧。
    2016-09-09
  • Flask框架運用Ajax實現(xiàn)數(shù)據(jù)交互的示例代碼

    Flask框架運用Ajax實現(xiàn)數(shù)據(jù)交互的示例代碼

    使用Ajax技術(shù)網(wǎng)頁應(yīng)用能夠快速地將增量更新呈現(xiàn)在用戶界面上,而不需要重載刷新整個頁面,這使得程序能夠更快地回應(yīng)用戶的操作,本文將簡單介紹使用AJAX如何實現(xiàn)前后端數(shù)據(jù)通信
    2022-11-11
  • python Dtale庫交互式數(shù)據(jù)探索分析和可視化界面

    python Dtale庫交互式數(shù)據(jù)探索分析和可視化界面

    這篇文章主要為大家介紹了python Dtale庫交互式數(shù)據(jù)探索分析和可視化界面實現(xiàn)功能詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Python常用模塊用法分析

    Python常用模塊用法分析

    這篇文章主要介紹了Python常用模塊用法分析,主要包括內(nèi)置函數(shù)、文件操作、正則匹配等等,需要的朋友可以參考下
    2014-09-09
  • k-means 聚類算法與Python實現(xiàn)代碼

    k-means 聚類算法與Python實現(xiàn)代碼

    這篇文章主要介紹了k-means 聚類算法與Python實現(xiàn)代碼,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • Python中?whl包、tar.gz包的區(qū)別詳解

    Python中?whl包、tar.gz包的區(qū)別詳解

    whl格式本質(zhì)上是一個壓縮包,里面包含了py文件,以及經(jīng)過編譯的pyd文件,這篇文章主要介紹了Python中?whl包、tar.gz包的區(qū)別,需要的朋友可以參考下
    2022-08-08
  • 關(guān)于使用Python的time庫制作進(jìn)度條程序

    關(guān)于使用Python的time庫制作進(jìn)度條程序

    這篇文章主要介紹了關(guān)于使用Python的time庫制作進(jìn)度條程序,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 詳盡講述用Python的Django框架測試驅(qū)動開發(fā)的教程

    詳盡講述用Python的Django框架測試驅(qū)動開發(fā)的教程

    這篇文章主要介紹了詳盡講述用Python的Django框架測試驅(qū)動開發(fā)的教程,主要使用TDD工具,全文介紹非常詳細(xì),需要的朋友可以參考下
    2015-04-04

最新評論

伊通| 大港区| 大庆市| 鄂托克前旗| 大同县| 略阳县| 汝州市| 望谟县| 平原县| 郓城县| 江北区| 木里| 房山区| 滨州市| 都江堰市| 奎屯市| 筠连县| 和平县| 灵丘县| 甘孜| 公安县| 渑池县| 香港 | 阿拉尔市| 德令哈市| 夏邑县| 武乡县| 娄底市| 大城县| 玉环县| 探索| 安义县| 双桥区| 西丰县| 绥阳县| 楚雄市| 台南市| 理塘县| 剑川县| 攀枝花市| 那坡县|