国产一区二区精品-国产一区二区精品久-国产一区二区精品久久-国产一区二区精品久久91-免费毛片播放-免费毛片基地

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > Python的動(dòng)態(tài)類型

Python的動(dòng)態(tài)類型

來源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-11-07 15:39:58 1699342798

在我們接觸的對象中,有一類特殊的對象,是用于存儲數(shù)據(jù)的。常見的該類對象包括各種數(shù)字,字符串,表,詞典。在C語言中,我們稱這樣一些數(shù)據(jù)結(jié)構(gòu)為變量。而在Python中,這些是對象。

對象是儲存在內(nèi)存中的實(shí)體。但我們并不能直接接觸到該對象。我們在程序中寫的對象名,只是指向這一對象的引用(reference)。

引用和對象分離,是動(dòng)態(tài)類型的核心。引用可以隨時(shí)指向一個(gè)新的對象:

a=3

a='at'

第一個(gè)語句中,3是儲存在內(nèi)存中的一個(gè)整數(shù)對象。通過賦值,引用a指向?qū)ο?。

第二個(gè)語句中,內(nèi)存中建立對象‘a(chǎn)t’,是一個(gè)字符串(string)。引用a指向了'at'。此時(shí),對象3不再有引用指向它。Python會自動(dòng)將沒有引用指向的對象銷毀(destruct),釋放相應(yīng)內(nèi)存。

(對于小的整數(shù)和短字符串,Python會緩存這些對象,而不是頻繁的建立和銷毀。)

a=5

b=a

a=a+2

再看這個(gè)例子。通過前兩個(gè)句子,我們讓a,b指向同一個(gè)整數(shù)對象5(b=a的含義是讓引用b指向引用a所指的那一個(gè)對象)。但第三個(gè)句子實(shí)際上對引用a重新賦值,讓a指向一個(gè)新的對象7。此時(shí)a,b分別指向不同的對象。我們看到,即使是多個(gè)引用指向同一個(gè)對象,如果一個(gè)引用值發(fā)生變化,那么實(shí)際上是讓這個(gè)引用指向一個(gè)新的引用,并不影響其他的引用的指向。從效果上看,就是各個(gè)引用各自獨(dú)立,互不影響。

其它數(shù)據(jù)對象也是如此:

L1=[1,2,3]

L2=L1

L1=1

但注意以下情況

L1=[1,2,3]

L2=L1

L1[0]=10

printL2

在該情況下,我們不再對L1這一引用賦值,而是對L1所指向的表的元素賦值。結(jié)果是,L2也同時(shí)發(fā)生變化。

原因何在呢?因?yàn)長1,L2的指向沒有發(fā)生變化,依然指向那個(gè)表。表實(shí)際上是包含了多個(gè)引用的對象(每個(gè)引用是一個(gè)元素,比如L1[0],L1[1]...,每個(gè)引用指向一個(gè)對象,比如1,2,3),。而L1[0]=10這一賦值操作,并不是改變L1的指向,而是對L1[0],也就是表對象的一部份(一個(gè)元素),進(jìn)行操作,所以所有指向該對象的引用都受到影響。

(與之形成對比的是,我們之前的賦值操作都沒有對對象自身發(fā)生作用,只是改變引用指向。)

列表可以通過引用其元素,改變對象自身(in-placechange)。這種對象類型,稱為可變數(shù)據(jù)對象(mutableobject),詞典也是這樣的數(shù)據(jù)類型。

而像之前的數(shù)字和字符串,不能改變對象本身,只能改變引用的指向,稱為不可變數(shù)據(jù)對象(immutableobject)。

我們之前學(xué)的元組(tuple),盡管可以調(diào)用引用元素,但不可以賦值,因此不能改變對象自身,所以也算是immutableobject.

以上內(nèi)容為大家介紹了Python的動(dòng)態(tài)類型,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT