欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

for循環(huán)中的局部變量引起的是什么問題

汽車電子技術(shù) ? 來源:Python腳本 ? 作者: IdlePig ? 2023-03-03 15:03 ? 次閱讀

Python中有一個(gè)問題:

循環(huán)變量泄漏

  • 第一種情況

構(gòu)造一個(gè)實(shí)際的環(huán)境,當(dāng)連上WiFi的時(shí)候,手機(jī)才能更新app,下面的是網(wǎng)絡(luò)環(huán)境的判斷

圖片

可以看到,這里的 x 是一個(gè)在for循環(huán)的局部變量,按照正常的理解,

在for循環(huán)外面調(diào)用 x 應(yīng)該是報(bào)錯(cuò)的,

但是在Python中,

for循環(huán)里面聲明的變量,在for循環(huán)結(jié)束后,會(huì)保留 x 的值。

圖片

上面的輸出的結(jié)果,第一個(gè) x 的值當(dāng)然是 WiFi,

第二個(gè)值就是遍歷完列表之后,列表最后一個(gè)值4G。

  • 第二種情況

那如果我們直接聲明一個(gè)全局變量呢,最后輸出的會(huì)是最開始的值嗎?

下面的代碼只是加了第3行,初始化了一下全局變量 x:

圖片

輸出的結(jié)果:

圖片

還是和第一種情況一樣,

充分說明了Python中,for循環(huán)中聲明的臨時(shí)變量的值會(huì)保留下來,

壞處很明顯,

一個(gè)局部變量沒有被銷毀,反而保留了下來,習(xí)慣其他語言的程序員寫起來很別扭,

一個(gè)不注意,可能還會(huì)有bug,一個(gè)后面怎么都不會(huì)想到的會(huì)出問題的地方,

避免起來很簡單,

注意好命名就行,不要隨便命名,全局變量和局部變量同名本來也不是個(gè)好習(xí)慣。

  • 語法上的規(guī)避方法

下面是Python中列表推導(dǎo)式,在Python3中被優(yōu)化過,

其實(shí)看到下圖的紅色波浪線,就大概知道,x 在這種情況下,只是一個(gè)局部變量了。

圖片

輸出結(jié)果:

圖片

顯而易見,報(bào)錯(cuò)是 x 沒有定義,x 已經(jīng)被當(dāng)作是局部變量了

  • 我們再試一種情況

聲明一個(gè)全局變量 x,值為WiFi,

圖片

輸出結(jié)果:

圖片

輸出都是WiFi,第4行的 x 已經(jīng)沒有影響了。

所以平時(shí)要注意Python中的一些坑,

Python易用的同時(shí),也有難用的地方。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    613

    瀏覽量

    28472
  • for
    for
    +關(guān)注

    關(guān)注

    0

    文章

    44

    瀏覽量

    15877
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4809

    瀏覽量

    85063
收藏 人收藏

    評論

    相關(guān)推薦

    labviEW局部變量的效率問題

    我編了一個(gè)程序,事件循環(huán)結(jié)構(gòu),沒有像labview風(fēng)格那樣用很多移位寄存器,代之以大量局部變量。請問各位大師,用大量局部變量的做法會(huì)不會(huì)影響程序運(yùn)行效率?和移位寄存器相比,兩種方法各有什么優(yōu)缺點(diǎn)?請從效率,可讀性,內(nèi)存空間復(fù)雜度
    發(fā)表于 04-05 15:34

    Labview慎用局部變量

    `` 對于初學(xué)Labview的人來說,局部變量這個(gè)東西有時(shí)候感覺很方便很好用,但是在這里,我的建議是如果你想寫出一段無論是維護(hù)性還是可讀性上都較好的代碼,那么就請慎用局部變量!為什么不建議大家
    發(fā)表于 02-25 11:11

    新手的一個(gè)局部變量的問題,如圖!

    2,3是1的局部變量,這時(shí)一個(gè)范例,我不明白為什么1和2要與非又給3,這樣的話當(dāng)1,2,3為真時(shí),1和2與非后為假,3就為假了,而3又是1的局部變量,1,2就變?yōu)榧倭耍?b class='flag-5'>循環(huán)不就該停止了嗎?怎么還會(huì)繼續(xù)運(yùn)行呢?
    發(fā)表于 04-25 08:21

    keil局部變量分配地址問題

    使用 請問是什么問題? 我以前理解的都是keil中局部變量都作為靜態(tài)變量分配地址的 。。。 難道局部變量keil能自動(dòng)優(yōu)化?
    發(fā)表于 01-20 12:25

    為什么創(chuàng)建局部變量失???

    我都是按照教程上的兩種方法建的局部變量,但是建立局部變量后運(yùn)行標(biāo)志變成斷裂。我打開一個(gè)例子,例子里面有局部變量,可是當(dāng)我再建同樣的局部變量的時(shí)候發(fā)生了同樣的錯(cuò)誤現(xiàn)象。
    發(fā)表于 07-23 22:56

    局部變量與隊(duì)列的使用

    大家好,我有一個(gè)困擾很久的問題。我想將一個(gè)循環(huán)里的數(shù)據(jù)引用到另一個(gè)定時(shí)循環(huán)結(jié)構(gòu)里,如果用局部變量的話會(huì)出現(xiàn)數(shù)據(jù)丟失,但實(shí)時(shí)性可以保證,如果用隊(duì)列的話保證了數(shù)據(jù)的完整性,但實(shí)時(shí)性做不到一致,會(huì)出現(xiàn)滯后,怎樣能讓數(shù)據(jù)和實(shí)時(shí)性都達(dá)到要
    發(fā)表于 05-22 14:31

    static作用(修飾函數(shù)、局部變量、全局變量

    詳細(xì)介紹了static作用(修飾函數(shù)、局部變量、全局變量)的用法
    發(fā)表于 11-17 10:30 ?4次下載

    全局變量局部變量有什么區(qū)別

    全局變量是編程術(shù)語中的一種,源自于變量之分。變量分為局部與全局,局部變量又可稱之為內(nèi)部變量。
    發(fā)表于 12-11 11:58 ?3.3w次閱讀
    全局<b class='flag-5'>變量</b>和<b class='flag-5'>局部變量</b>有什么區(qū)別

    單片機(jī)靜態(tài)局部變量的使用方法

    1.靜態(tài)局部變量的值在函數(shù)調(diào)用結(jié)束后不消失而保留原值,即其占用的存儲單元不釋放,在下一次該函數(shù)調(diào)用時(shí),該變量已有值,就是上一次函數(shù)調(diào)用結(jié)束時(shí)的值; 2.靜態(tài)局部變量屬于靜態(tài)存儲類別,在靜態(tài)存儲
    發(fā)表于 03-14 14:28 ?3152次閱讀
    單片機(jī)靜態(tài)<b class='flag-5'>局部變量</b>的使用方法

    關(guān)于 函數(shù)體內(nèi)局部變量定義的位置

    關(guān)于函數(shù)體內(nèi)局部變量定義的位置
    的頭像 發(fā)表于 03-14 11:43 ?2849次閱讀
    關(guān)于 函數(shù)體內(nèi)<b class='flag-5'>局部變量</b>定義的位置

    西門子PLC的公共變量局部變量

    局部變量L:PLC內(nèi)部局部變量用英文字母L標(biāo)記,其作用與公共變量類似,但它是一種共用的、動(dòng)態(tài)變化的存儲區(qū)域,其內(nèi)容與含義隨著所執(zhí)行的邏輯塊的不同而改變,它用于寄存僅在邏輯塊內(nèi)部使用的中間運(yùn)算結(jié)果。
    發(fā)表于 03-24 13:41 ?5359次閱讀

    詳解LABVIEW中的局部變量和全局變量

    本文檔的主要內(nèi)容詳細(xì)介紹的是LABVIEW初級教程之局部變量與全局變量的詳細(xì)資料說明。
    發(fā)表于 03-29 15:00 ?26次下載

    西門子PLC的局部變量使用技巧

    臨時(shí)變量是臨時(shí)存儲在本地?cái)?shù)據(jù)區(qū)的變量。只有在執(zhí)行POU時(shí),才使用定義的臨時(shí)變量,而在執(zhí)行POU后,不再使用臨時(shí)變量的值。在主程序或中斷程序中,局部變
    發(fā)表于 12-13 18:07 ?5498次閱讀

    Python-局部變量與全局變量

    局部變量是在函數(shù)內(nèi)部定義的變量,只能在函數(shù)內(nèi)部使用,函數(shù)執(zhí)行結(jié)束后,函數(shù)內(nèi)部的局部變量會(huì)被系統(tǒng)回收,不同的函數(shù),可以定義相同名稱的局部變量,相互之間沒有任何關(guān)聯(lián)
    的頭像 發(fā)表于 02-16 15:16 ?946次閱讀
    Python-<b class='flag-5'>局部變量</b>與全局<b class='flag-5'>變量</b>

    for循環(huán)里的變量局部變量

    對于一個(gè)普通for循環(huán)而言,循環(huán)變量局部變量。在大多數(shù)編程語言中,循環(huán)變量只在
    的頭像 發(fā)表于 11-23 14:50 ?2939次閱讀