久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

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

手機(jī)站
千鋒教育

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

千鋒教育

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

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

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

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

Python的動態(tài)類型

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

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

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

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

a=3

a='at'

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

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

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

a=5

b=a

a=a+2

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

原因何在呢?因?yàn)長1,L2的指向沒有發(fā)生變化,依然指向那個表。表實(shí)際上是包含了多個引用的對象(每個引用是一個元素,比如L1[0],L1[1]...,每個引用指向一個對象,比如1,2,3),。而L1[0]=10這一賦值操作,并不是改變L1的指向,而是對L1[0],也就是表對象的一部份(一個元素),進(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小時內(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