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

Python 可變類型和不可變類型及引用過程解析

 更新時(shí)間:2019年09月27日 08:28:19   作者:tony86  
這篇文章主要介紹了Python 可變類型和不可變類型,以及其引用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

在Python中定義一個(gè)數(shù)據(jù)便在內(nèi)存中開辟一片空間來存儲這個(gè)變量的值,這塊已經(jīng)被分配的內(nèi)存空間便會有一個(gè)內(nèi)存地址。訪問這塊內(nèi)存需要用到變量名,變量名實(shí)際存儲的是變量的地址在內(nèi)存中的地址,但是使用print()函數(shù)得到的確實(shí)這塊內(nèi)存中實(shí)際的地址。這個(gè)就當(dāng)成規(guī)定就好,沒必要糾結(jié)。

獲得變量在內(nèi)存中的地址,可以使用id()函數(shù)。

常規(guī)使用

變量之間的賦值其實(shí)是把一個(gè)變量的內(nèi)存地址傳遞給另一個(gè)變量,這樣兩個(gè)變量便都指向內(nèi)存中的同一塊空間,因此這兩個(gè)變量的之是相等的

a = 1
b = a
print("a:%d  b:%d" % (a,b))
print(id(a))
print(id(b))
結(jié)果:
a:1  b:1
1711072016

此時(shí)如果有第三個(gè)變量c的值與a的相等,那么c的地址與a的地址一樣。這一點(diǎn)請大家牢記。

a = 1
c = 1
print("a:%d  c:%d" % (a,c))
print(id(a))
print(id(c))
結(jié)果:
a:1  c:1
1711072016

此時(shí)如果修改變量c的值,那么會在內(nèi)存中新開辟一塊內(nèi)存來存儲這個(gè)變量,這塊新的內(nèi)存地址將會賦值給c。

a = 1
c = 1
c = 2
print("a:%d  c:%d" % (a,c))
print(id(a))
print(id(c))
結(jié)果:
a:1  c:2
1711072032

基本數(shù)據(jù)類型作為函數(shù)參數(shù)

基本數(shù)據(jù)類型作為函數(shù)實(shí)參同樣是這個(gè)道理。

a = 1
print(id(a))
def func(x):
  print(id(x))
  x = 2
  print(id(x))
 
func(a)
結(jié)果:
1711072016

列表、字典等高級數(shù)據(jù)類型的引用

列表字典等高級數(shù)據(jù)類型的變量名同樣存儲的變量的實(shí)際地址,一個(gè)列表名賦值給另一個(gè)變量,那么這兩個(gè)變量便指向內(nèi)存中的同一塊地址。

list1 = [1,2,3]
list2 = list1
print(list1,list2)
print(id(list1),id(list2))
結(jié)果:
[1, 2, 3] [1, 2, 3]
57931896

高級數(shù)據(jù)類型在每集加載進(jìn)內(nèi)存的時(shí)候內(nèi)存地址與上一次可能會不同。

此時(shí)如果修改list2,也會影響list1的值,但是兩個(gè)變量在內(nèi)存中的地址還是不變的。這一點(diǎn)是與基本數(shù)據(jù)類型不一樣的。

list1 = [1,2,3]
list2 = list1
print(list1,list2)
print(id(list1),id(list2))
list2.append(4)
print(list1,list2)
print(id(list1),id(list2))
 
結(jié)果:
[1, 2, 3] [1, 2, 3]
43841656
[1, 2, 3, 4] [1, 2, 3, 4]
43841656

此時(shí)如果有第三個(gè)列表list3的值也是[1,2,3,4],可以推測list3的地址與list1的地址應(yīng)該是一樣的,但是事實(shí)并非如此。如果有第三個(gè)列表list3的值也是[1,2,3,4],相當(dāng)于在內(nèi)存中新開辟一塊內(nèi)存來存儲這個(gè)值。

list1 = [1,2,3]
list2 = list1
list3 = [1,2,3]
print(list1,list2,list3)
print(id(list1),id(list2),id(list3))
結(jié)果:
[1, 2, 3] [1, 2, 3] [1, 2, 3]
16775288 16776768

可變數(shù)據(jù)類型與不可變數(shù)據(jù)類型

在python中哪些是可變數(shù)據(jù)類型,哪些是不可變數(shù)據(jù)類型??勺償?shù)據(jù)類型:列表list和字典dict;不可變數(shù)據(jù)類型:整型int、浮點(diǎn)型float、字符串型string和元組tuple。

用一句話來概括上述過程就是:“python中的不可變數(shù)據(jù)類型,不允許變量的值發(fā)生變化,如果改變了變量的值,相當(dāng)于是新建了一個(gè)對象,而對于相同的值的對象,在內(nèi)存中則只有一個(gè)對象,內(nèi)部會有一個(gè)引用計(jì)數(shù)來記錄有多少個(gè)變量引用這個(gè)對象;可變數(shù)據(jù)類型,允許變量的值發(fā)生變化,即如果對變量進(jìn)行append、+=等這種操作后,只是改變了變量的值,而不會新建一個(gè)對象,變量引用的對象的地址也不會變化,不過對于相同的值的不同對象,在內(nèi)存中則會存在不同的對象,即每個(gè)對象都有自己的地址,相當(dāng)于內(nèi)存中對于同值的對象保存了多份,這里不存在引用計(jì)數(shù),是實(shí)實(shí)在在的對象。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python實(shí)現(xiàn)帶圖形界面的炸金花游戲

    Python實(shí)現(xiàn)帶圖形界面的炸金花游戲

    詐金花又叫三張牌,是在全國廣泛流傳的一種民間多人紙牌游戲,它具有獨(dú)特的比牌規(guī)則。本文將通過Python語言實(shí)現(xiàn)帶圖形界面的詐金花游戲,需要的可以參考一下
    2022-12-12
  • Python datetime 如何處理時(shí)區(qū)信息

    Python datetime 如何處理時(shí)區(qū)信息

    這篇文章主要介紹了Python datetime 如何處理時(shí)區(qū)信息,幫助大家更好的用python 處理時(shí)間,感興趣的朋友可以了解下。
    2020-09-09
  • Python函數(shù)中的可變長參數(shù)詳解

    Python函數(shù)中的可變長參數(shù)詳解

    在本篇文章里小編給大家整理的是關(guān)于Python函數(shù)中的可變長參數(shù)的相關(guān)知識點(diǎn)內(nèi)容,有需要的朋友們參考下。
    2019-09-09
  • 基于Pytorch實(shí)現(xiàn)邏輯回歸

    基于Pytorch實(shí)現(xiàn)邏輯回歸

    這篇文章主要為大家詳細(xì)介紹了基于Pytorch實(shí)現(xiàn)邏輯回歸,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • python實(shí)現(xiàn)連連看游戲

    python實(shí)現(xiàn)連連看游戲

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)連連看游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • 基于Python獲取城市近7天天氣預(yù)報(bào)

    基于Python獲取城市近7天天氣預(yù)報(bào)

    這篇文章主要介紹了基于Python獲取城市近7天天氣預(yù)報(bào),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • numpy中實(shí)現(xiàn)二維數(shù)組按照某列、某行排序的方法

    numpy中實(shí)現(xiàn)二維數(shù)組按照某列、某行排序的方法

    下面小編就為大家分享一篇numpy中實(shí)現(xiàn)二維數(shù)組按照某列、某行排序的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Django如何配置mysql數(shù)據(jù)庫

    Django如何配置mysql數(shù)據(jù)庫

    這篇文章主要為大家詳細(xì)介紹了Django配置mysql數(shù)據(jù)庫的詳細(xì)步驟,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • python簡介及下載安裝

    python簡介及下載安裝

    這篇文章介紹了python以及下載安裝的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Python數(shù)據(jù)分析Numpy中常用相關(guān)性函數(shù)

    Python數(shù)據(jù)分析Numpy中常用相關(guān)性函數(shù)

    這篇文章主要為大家介紹了Python數(shù)據(jù)分析Numpy中常用相關(guān)性函數(shù)講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06

最新評論

望江县| 延津县| 汝南县| 澳门| 南靖县| 南阳市| 璧山县| 库尔勒市| 紫阳县| 施甸县| 卫辉市| 鸡东县| 汤阴县| 泗水县| 洛南县| 潢川县| 吉水县| 民乐县| 湖南省| 鲜城| 河源市| 扎赉特旗| 丁青县| 庆云县| 清水县| 新兴县| 横山县| 嘉鱼县| 蒲城县| 通许县| 南城县| 固安县| 赞皇县| 若尔盖县| 花莲市| 南汇区| 三都| 莒南县| 普宁市| 巴楚县| 五大连池市|