亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python數(shù)據(jù)模型與Python對(duì)象模型的相關(guān)總結(jié)

 更新時(shí)間:2021年01月26日 09:31:52   作者:PythonMind  
這篇文章主要介紹了Python數(shù)據(jù)模型與Python對(duì)象模型的相關(guān)總結(jié),幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下

數(shù)據(jù)模型==對(duì)象模型

Python官方文檔說(shuō)法是“Python數(shù)據(jù)模型”,大多數(shù)Python書(shū)籍作者說(shuō)法是“Python對(duì)象模型”,它們是一個(gè)意思,表示“計(jì)算機(jī)編程語(yǔ)言中對(duì)象的屬性”。這句話有點(diǎn)抽象,只要知道對(duì)象是Python對(duì)數(shù)據(jù)的抽象,在Python中萬(wàn)物皆對(duì)象就可以了。

官方文檔嚴(yán)謹(jǐn)說(shuō)法,Python程序中的所有數(shù)據(jù)都是用對(duì)象或?qū)ο笾g的關(guān)系來(lái)表示的。

對(duì)象三要素

對(duì)象有三個(gè)要素:編號(hào)(identity)、類型(type)、值(value)。

identity

編號(hào)就是對(duì)象的內(nèi)存地址,從創(chuàng)建后就不會(huì)改變。is運(yùn)算符用來(lái)比較2個(gè)對(duì)象的編號(hào)。id()函數(shù)返回對(duì)象編號(hào)的整數(shù)表示。

identity也可以翻譯為身份,對(duì)象身份。

type

類型決定了可以對(duì)對(duì)象做哪些操作,也定義了對(duì)象的可能值,比如intbool類型的值就不一樣。type()函數(shù)返回對(duì)象類型。很多人會(huì)誤以為Python是弱類型語(yǔ)言,其實(shí)Python是強(qiáng)類型語(yǔ)言,這個(gè)誤解的真實(shí)原因是,Python不需要編譯,不需要提前知道變量的類型,在運(yùn)行時(shí)才檢查類型,這應(yīng)該叫做動(dòng)態(tài)語(yǔ)言。

JavaScript是弱類型語(yǔ)言,在Python中1+"2"會(huì)運(yùn)行失敗,在JavaScript中能運(yùn)行成功。

類型在創(chuàng)建后也不會(huì)改變,雖然可以進(jìn)行類型轉(zhuǎn)換,但轉(zhuǎn)換實(shí)際會(huì)產(chǎn)生新對(duì)象:

a = 1
print(id(a))
print(id(str(a)))
print(id(a))

結(jié)果為:

140715000207008
2136059506160
140715000207008

value

對(duì)象三要素中唯一能改變的就只有值了。官網(wǎng)有一句正確的廢話:允許改變值的對(duì)象是mutable(可變的),不允許改變值的對(duì)象是immutable(不可變的)。它的意義在于當(dāng)不可變對(duì)象的值是對(duì)可變對(duì)象的引用時(shí),該如何判斷對(duì)象的可變性?結(jié)論是不可變對(duì)象仍然是不可變的,因?yàn)檫@個(gè)引用是不能變的,但是我們通常會(huì)認(rèn)為這個(gè)不可變對(duì)象的值是可變的,尤其是對(duì)象容器。對(duì)象類型也會(huì)決定是否可變,比如numbers、strings、tuples是不可變的,dictionaries、lists是可變的。

對(duì)象容器

有些對(duì)象包含了對(duì)其他對(duì)象的引用,這叫做containers對(duì)象容器,比如tupleslists、dictionaries。大多數(shù)情況下,我們說(shuō)容器的值,說(shuō)的是引用的對(duì)象的值,而不是引用編號(hào)。但討論容器可變性時(shí),則僅僅是指容器直接包含的引用編號(hào)。比如tuple是不可變的,如果它包含了對(duì)一個(gè)可變對(duì)象的引用后,當(dāng)該可變對(duì)象改變時(shí)容器的值也會(huì)改變。

對(duì)象回收

對(duì)象不會(huì)被顯式銷毀,但是它們會(huì)被當(dāng)做垃圾回收,只要不存在對(duì)象引用,這就是Python垃圾回收機(jī)制!垃圾回收機(jī)制比較復(fù)雜,比如循環(huán)引用,實(shí)際上已經(jīng)沒(méi)有使用了,但是還存在引用等,涉及到算法規(guī)則,等寫(xiě)完P(guān)ython進(jìn)階,在寫(xiě)Python原理時(shí)做進(jìn)一步研究。

Python垃圾回收機(jī)制不是銀彈,不能解決所有問(wèn)題,所以在引用外部資源,比如打開(kāi)文件后,我們需要注意顯式close,防止資源始終占用內(nèi)存,無(wú)法釋放,造成內(nèi)存泄漏。close除了手動(dòng)調(diào)用close()方法外,也可以使用with來(lái)自動(dòng)close。

使用try...except可能會(huì)讓對(duì)象繼續(xù)存活。

類型決定一切

對(duì)象的類型幾乎決定了對(duì)象的一切行為,甚至是對(duì)象編號(hào),比如對(duì)于不可變類型:

a = 1
b = 1

a和b可能會(huì)指向同一個(gè)值為1的對(duì)象,也可能會(huì)指向兩個(gè)不同的值為1的對(duì)象,這取決于具體實(shí)現(xiàn)。

但是對(duì)于可變類型:

c = []
d = []

c和d一定會(huì)指向兩個(gè)不同的單獨(dú)的空列表。

注意c = d = [] 則是將同一個(gè)對(duì)象賦值給 c 和 d。

小結(jié)

Python數(shù)據(jù)模型就是常說(shuō)的對(duì)象模型,萬(wàn)物皆對(duì)象,有編號(hào)、類型、值三個(gè)要素。了解了對(duì)象模型后,Python另一個(gè)重要概念即將浮出水面,它就是數(shù)據(jù)結(jié)構(gòu)。

參考資料:

https://docs.python.org/3/reference/datamodel.html

以上就是Python數(shù)據(jù)模型與Python對(duì)象模型的相關(guān)總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于python數(shù)據(jù)模型與對(duì)象模型的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python利用Tesseract識(shí)別驗(yàn)證碼的方法示例

    python利用Tesseract識(shí)別驗(yàn)證碼的方法示例

    無(wú)論是是自動(dòng)化登錄還是爬蟲(chóng),總繞不開(kāi)驗(yàn)證碼,這次就來(lái)談?wù)刾ython中光學(xué)識(shí)別驗(yàn)證碼模塊Tesseract,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • 對(duì)python 自定義協(xié)議的方法詳解

    對(duì)python 自定義協(xié)議的方法詳解

    今天小編就為大家分享一篇對(duì)python 自定義協(xié)議的方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • 基于Python Dash庫(kù)制作酷炫的可視化大屏

    基于Python Dash庫(kù)制作酷炫的可視化大屏

    在數(shù)據(jù)時(shí)代,我們每個(gè)人既是數(shù)據(jù)的生產(chǎn)者,也是數(shù)據(jù)的使用者,然而初次獲取和存儲(chǔ)的原始數(shù)據(jù)雜亂無(wú)章、信息冗余、價(jià)值較低。要想數(shù)據(jù)達(dá)到生動(dòng)有趣、讓人一目了然、豁然開(kāi)朗的效果,就需要借助數(shù)據(jù)可視化。本文將介紹通過(guò)Dash庫(kù)制作酷炫的可視化大屏!需要的可以參考下
    2021-12-12
  • python requests response值判斷方式

    python requests response值判斷方式

    這篇文章主要介紹了python requests response值判斷方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04
  • Python樹(shù)的重建實(shí)現(xiàn)示例

    Python樹(shù)的重建實(shí)現(xiàn)示例

    樹(shù)的重建是一種從給定的遍歷序列中恢復(fù)原樹(shù)結(jié)構(gòu)的算法,本文就來(lái)介紹一下Python樹(shù)的重建實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11
  • 詳解Python的條件語(yǔ)句

    詳解Python的條件語(yǔ)句

    這篇文章主要為大家介紹了Python的條件語(yǔ)句,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • Python爬蟲(chóng)實(shí)現(xiàn)網(wǎng)頁(yè)信息抓取功能示例【URL與正則模塊】

    Python爬蟲(chóng)實(shí)現(xiàn)網(wǎng)頁(yè)信息抓取功能示例【URL與正則模塊】

    這篇文章主要介紹了Python爬蟲(chóng)實(shí)現(xiàn)網(wǎng)頁(yè)信息抓取功能,涉及Python使用URL與正則模塊針對(duì)網(wǎng)頁(yè)信息的讀取與匹配相關(guān)操作技巧,需要的朋友可以參考下
    2017-05-05
  • Python類的繼承與多態(tài)詳細(xì)介紹

    Python類的繼承與多態(tài)詳細(xì)介紹

    大家好,本篇文章主要講的是Python類的繼承與多態(tài)詳細(xì)介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • Python 彈窗設(shè)計(jì)小人發(fā)射愛(ài)心

    Python 彈窗設(shè)計(jì)小人發(fā)射愛(ài)心

    今天小編就為大家分享一篇使用Python畫(huà)出小人發(fā)射愛(ài)心的代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-09-09
  • 如何利用python制作時(shí)間戳轉(zhuǎn)換工具詳解

    如何利用python制作時(shí)間戳轉(zhuǎn)換工具詳解

    這篇文章主要給大家介紹了關(guān)于如何利用python制作時(shí)間戳轉(zhuǎn)換工具的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09

最新評(píng)論