久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Day124:python中的變量,、引用、拷貝

 工人ABC 2020-07-19

在Python中,,變量是沒有類型的,,這和以往看到的大部分編輯語言都不一樣。在使用變量的時候,,不需要提前聲明,,只需要給這個變量賦值即可。但是,,當用變量的時候,,必須要給這個變量賦值;如果只寫一個變量,,而沒有賦值,那么Python認為這個變量沒有定義,。(在python中,,對象賦值實際上是對象的引用。當創(chuàng)建一個對象,,然后把它賦給另一個變量的時候,,python并沒有拷貝這個對象,而只是拷貝了這個對象的引用)

>>> aTraceback (most recent call last): File '<pyshell#0>', line 1, in <module> aNameError: name 'a' is not defined>>>

一,、可變對象 & 不可變對象

在Python中,,對象分為兩種:

  1. 不可變對象:不可變對象包括int,float,,long,,str,tuple等

  2. 可變對象:可變對象包括list,,set,,dict等

需要注意的是:不可變指的是值的不可變。對于不可變類型的變量,,如果要更改變量,,則會創(chuàng)建一個新值,把變量綁定到新值上,,而舊值如果沒有被引用就等待垃圾回收,。另外,不可變的類型可以計算hash值,,作為字典的key,。可變類型數(shù)據(jù)對對象操作的時候,,不需要再在其他地方申請內(nèi)存,,只需要在此對象后面連續(xù)申請(+/-)即可,,也就是它的內(nèi)存地址會保持不變,但區(qū)域會變長或者變短,。

二,、變量無類型,對象有類型

上面說了,,Python中的變量是沒有類型的,,但Python其實是區(qū)分類型的:Python的所有變量其實都是指向內(nèi)存中的對象的一個指針,都是值的引用,,而其類型是跟著對象走的,。總結(jié)來說:在Python中,,類型是屬于對象的,,而不是變量, 變量和對象是分離的,對象是內(nèi)存中儲存數(shù)據(jù)的實體,,變量則是指向?qū)ο蟮闹羔?/strong>,。在《Learning Python》一書中有一個觀點:變量無類型,對象有類型,,大概也是說的這個意思,。

對象VS變量 nfoo = 1 #一個指向int數(shù)據(jù)類型的nfoo(再次提醒,nfoo沒有類型)  lstFoo = [1] #一個指向list類型的lstFoo,,這個list中包含一個整數(shù)1

下面是一張說明變量的圖:

Day124:python中的變量,、引用、拷貝

三,、Python函數(shù)參數(shù)到底是按值還是按引用傳遞的

def func_int(a): a += 4def func_list(a_list): a_list[0] = 4t = 0func_int(t)print t# output: 0t_list = [1, 2, 3]func_list(t_list)print t_list# output: [4, 2, 3]

對于上面的輸出,,不少Python初學者都比較疑惑:第一個例子看起來像是傳值,而第二個例子確實傳引用,。其實,,解釋這個問題也非常容易,主要是因為可變對象和不可變對象的原因:對于可變對象,,對象的操作不會重建對象,,而對于不可變對象,每一次操作就重建新的對象,。

在函數(shù)參數(shù)傳遞的時候,,Python其實就是把參數(shù)里傳入的變量對應(yīng)的對象的引用依次賦值給對應(yīng)的函數(shù)內(nèi)部變量。參照上面的例子來說明更容易理解,,func_int中的局部變量'a'其實是全部變量't'所指向?qū)ο蟮牧硪粋€引用,,由于整數(shù)對象是不可變的,(你想修改不可更改的對象時,,其實就是開辟了一個新的存儲空間新的對象)所以當func_int對變量'a'進行修改的時候,,實際上是將局部變量'a'指向到了整數(shù)對象'4',。所以很明顯,func_list修改的是一個可變的對象,,局部變量'a'和全局變量't_list'指向的還是同一個對象,。

https://www.cnblogs.com/wft1990/p/5806892.html

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多