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

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)起來相對簡單。

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

    Python常用模塊用法分析

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

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

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

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

    whl格式本質(zhì)上是一個(gè)壓縮包,里面包含了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í)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 詳盡講述用Python的Django框架測試驅(qū)動(dòng)開發(fā)的教程

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

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

最新評論

五指山市| 祁连县| 永吉县| 图木舒克市| 三穗县| 常熟市| 伊宁市| 驻马店市| 扶余县| 明星| 廊坊市| 宁国市| 安溪县| 青阳县| 健康| 综艺| 阳山县| 九龙坡区| 丰宁| 治多县| 雷山县| 明溪县| 呼伦贝尔市| 东乡县| 隆化县| 宁陵县| 娄烦县| 雷州市| 澜沧| 沈阳市| 江北区| 清丰县| 呼伦贝尔市| 万州区| 香格里拉县| 武宁县| 南岸区| 边坝县| 绥阳县| 清原| 兴和县|