千鋒教育-做有情懷、有良心、有品質(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的動態(tài)類型

Python的動態(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)。

引用和對象分離,是動態(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會自動將沒有引用指向的對象銷毀(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的動態(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
Python在最短的序列參數(shù)終止時(shí)停止迭代

chain(p,q,...)迭代至序列p的最后一個(gè)元素后,從q的第一個(gè)元素開始,直到所有序列終止。chain('ABC','DEF')-->ABCDEFcompress...詳情>>

2023-11-07 18:21:59
python豐富的內(nèi)置類型及相關(guān)操作

python的內(nèi)置類型如下:lString:字符串放在單引號、雙引號、三引號(多行時(shí))中,從0開始索引,支持n查:find、index、n切片:s[0:2]、s[1:]n連...詳情>>

2023-11-07 18:07:35
Python裝飾器?的寫法以及應(yīng)用場景

含義:裝飾器本質(zhì)就是函數(shù),為其他函數(shù)添加附加功能原則:不修改被修飾函數(shù)的代碼不修改被修飾函數(shù)的調(diào)用方式應(yīng)用場景:無參裝飾器在用戶登錄認(rèn)...詳情>>

2023-11-07 17:38:46
Python粘包

什么是粘包?socket中造成粘包的原因是什什么?哪些情況會發(fā)生粘包現(xiàn)象?只有TCP有粘包現(xiàn)象,UDP永遠(yuǎn)不會粘包粘包:在獲取數(shù)據(jù)時(shí),出現(xiàn)數(shù)據(jù)的內(nèi)容不...詳情>>

2023-11-07 17:35:10
Python之select、poll、epoll模型的區(qū)別

select、poll、epoll模型的區(qū)別?(屬于多路復(fù)用IO的模型)都是i/o多路復(fù)用的機(jī)制,監(jiān)視多個(gè)socket是否發(fā)生變化,本質(zhì)上都是同步i/oselect,poll實(shí)...詳情>>

2023-11-07 17:31:34
久久亚洲中文字幕精品一区四,亚洲日本另类欧美一区二区,久久久久久久这里只有免费费精品,高清国产激情视频在线观看
亚洲va国产日韩欧美精品 | 久久精品国产首页国产 | 亚洲天堂欧美精品 | 中文字幕免费大全日本一片 | 日韩欧美国产一线 | 亚洲一区二区偷拍精品 |