国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

??Python面向?qū)ο蟊D肥浇虒W(xué)??,新手速成精英之路!

Cc_2011 / 3225人閱讀

前言

最近,我在群里答疑的時候,經(jīng)常碰到,小伙伴,再變量,縮進,參數(shù),方面使用錯誤,導(dǎo)致程序運行不來。

今天,打算自己寫一篇。
Python 變量作用域,和生命周期。
徹底弄懂變量該怎么使用。

知識點

變量的使用,有作用域區(qū)別,也有生命周期的區(qū)別。

1.變量作用域

局部變量

python能夠影響變量作用域的代碼段是def、class、lamda。

def scopeTest():    localValur = 6    print(localValur)scopeTest()# print(localValur) #去除注釋這里會報錯,因為localValur是本地變量

輸出結(jié)果:

6

去掉注釋的結(jié)果:

6Traceback (most recent call last):  File "D:/PythonDemo/test--/cycleTest.py", line 6, in <module>    print(localValur) #去除注釋這里會報錯,因為localValur是本地變量NameError: name "localValur" is not defined

if/elif/else、try/except/finally、for/while 并不能涉及變量作用域的更改,也就是說他們的代碼塊中的變量,在外部也是可以訪問的。

for i in range(3):    localValur=i+1    passprint(i)print(localValur)

輸出結(jié)果:

23

變量搜索路徑是:本地變量->全局變量。

def scopeTest():    var = 6    print(var)  #    def innerFunc():        print(f"var:{var}")  #注意這里    innerFunc()var = 5print(var)scopeTest()print(var)

輸出結(jié)果:

56var:65

局部變量總結(jié):

①def函數(shù)里面的變量,不能和文件里面的變量共用
②def函數(shù)可以嵌套使用,并且內(nèi)部def函數(shù),可以使用外部def函數(shù)的變量。

全局變量 global 關(guān)鍵字

在我們在文件外面定義了一個變量,想通過函數(shù)操作是不是就沒辦法了?

value=100def scopeTest():    # global value    value +=1print(value)scopeTest()print(value)

沒進行聲明的時候,是這樣的輸出結(jié)果:

100Traceback (most recent call last):  File "D:/PythonDemo/test--/cycleTest.py", line 8, in <module>    scopeTest()  File "D:/PythonDemo/test--/cycleTest.py", line 5, in scopeTest    value +=1UnboundLocalError: local variable "value" referenced before assignment

去掉注釋:

value=100def scopeTest():    global value    value +=1print(value)scopeTest()print(value)

這個時候,函數(shù)里面,修改的結(jié)果,也會影響到文件了,輸出結(jié)果:

100101

變量生命周期

1. def函數(shù)內(nèi)的變量,在函數(shù)結(jié)束后就失效了。


2. class類,變量的生命周期

先看案例:
創(chuàng)建一個類,之后把類里面的index值改成有序值

class classTest:    index=0    arr=[]add=classTestfor i in range(5):    add.index=iarr.append(add)for cc in arr:    print(cc.index)

輸出結(jié)果:

44444

為什么結(jié)果都會變成4?因為這里的變量add的數(shù)據(jù)類型是一個type類。

print(type(add))
<class "type">

數(shù)組里面的值是跟著 ‘type’ 對象改變的,add 的生命周期,從聲明起就一直沒有變化。

正確寫法:

class classTest:index=0for i in range(5):    add = classTest()    print(type(add))    add.index=i    arr.append(add)for cc in arr:    print(cc.index)

顯示結(jié)果:

<class "__main__.classTest"><class "__main__.classTest"><class "__main__.classTest"><class "__main__.classTest"><class "__main__.classTest">01234

這個時候,我們的結(jié)果就正確了。add的生命周期,在每一次創(chuàng)建的時候,就是一個新變量。

結(jié)語

知識點雖然少,但是他的重要性,無可替代,很多看似解決不了的錯誤,依靠基礎(chǔ)知識都可以解決。

很多博主都在推薦功能的使用,我更強調(diào)基礎(chǔ)的訓(xùn)練。


推薦一本書,確保基礎(chǔ)不掉隊。


鏈接:https://pan.baidu.com/s/1YllgwFf3aMbZLHeNyoLkUQ
提取碼:9vwh

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/121421.html

相關(guān)文章

  • 程序員這條路,選擇深耕技術(shù),還是全面學(xué)習比較好?

    摘要:前言在開發(fā)技術(shù)和應(yīng)用市場完全成熟的今天,有人希望深耕技術(shù)打造出自己的一片天地,也有人想廣泛學(xué)習在程序員市場中游刃有余。而這本書上千的引用論文,給我指明了一條系統(tǒng)學(xué)習理論的明路。 ...

    kun_jian 評論0 收藏0
  • ??Python異常捕獲和處理??姆式教學(xué),代碼異常報錯也能那么和諧且個性!

    ?前言 代碼出現(xiàn)異常而報錯再正常不過了,但為什么要處理異常? 由于異常的存在,代碼運行時會出現(xiàn)一大堆的紅色字體提示,對于程序員還好,見紅色報錯見多了習慣了,但如果你開發(fā)出來的東西要給別人看,那么不懂代碼的人就會一臉懵逼,對產(chǎn)品的印象都不太好了。 比如我們經(jīng)常簡單網(wǎng)頁丟失的情況,其實是就是網(wǎng)頁代碼執(zhí)行時發(fā)生了異常,但有的網(wǎng)頁還是很個性的,提示的信息可能是比較人性化的,比如CSDN你收藏的文章被后臺刪...

    awesome23 評論0 收藏0
  • ??Python【文件操作】姆式教程??,計算機那么多文件,你繞不過這一關(guān)的!

    ?前言 在Python寫代碼做項目時,我們往往需要對多個文件進行操作,在現(xiàn)在的源代碼文件中怎么導(dǎo)入其他文件?怎么對其他文件進行操作?這都是經(jīng)常要面臨的問題,尤其是爬蟲,爬到的數(shù)據(jù)放在哪里?用到的時候怎么調(diào)出來? 這就涉及到了Python的文件操作知識了,我們不可能永遠都只會在一個源文件上做所有的操作,這也是必須掌握的一個知識板塊。 與此同時,我的Python新手入門教程系列文章也已經(jīng)快更新完了,歡...

    forsigner 評論0 收藏0
  • 保姆級教程HTML兩萬字筆記大總結(jié)【建議收藏】(上篇)

    摘要:標簽不區(qū)分大小寫,但推薦小寫。標簽可以嵌套,但不能交叉嵌套。標簽也稱為元素。比如行內(nèi)標簽亦可成行內(nèi)元素。 ??HTML必備知識詳解?? 第一部分:HTML框架簡介...

    paulli3 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<