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

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

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

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

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

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

對象三要素

對象有三個要素:編號(identity)、類型(type)、值(value)。

identity

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

identity也可以翻譯為身份,對象身份。

type

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

JavaScript是弱類型語言,在Python中1+"2"會運行失敗,在JavaScript中能運行成功。

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

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

結(jié)果為:

140715000207008
2136059506160
140715000207008

value

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

對象容器

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

對象回收

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

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

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

類型決定一切

對象的類型幾乎決定了對象的一切行為,甚至是對象編號,比如對于不可變類型:

a = 1
b = 1

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

但是對于可變類型:

c = []
d = []

c和d一定會指向兩個不同的單獨的空列表。

注意c = d = [] 則是將同一個對象賦值給 c 和 d。

小結(jié)

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

參考資料:

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

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

相關(guān)文章

  • Python裝飾器如何實現(xiàn)修復(fù)過程解析

    Python裝飾器如何實現(xiàn)修復(fù)過程解析

    這篇文章主要介紹了Python裝飾器如何實現(xiàn)修復(fù)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • python3模擬百度登錄并實現(xiàn)百度貼吧簽到示例分享(百度貼吧自動簽到)

    python3模擬百度登錄并實現(xiàn)百度貼吧簽到示例分享(百度貼吧自動簽到)

    這篇文章主要介紹了python3模擬百度登錄并實現(xiàn)百度貼吧簽到示例,需要的朋友可以參考下
    2014-02-02
  • 基于python+pandoc實現(xiàn)html批量轉(zhuǎn)word

    基于python+pandoc實現(xiàn)html批量轉(zhuǎn)word

    pandoc是一個強大的文檔格式轉(zhuǎn)換工具,支持豐富的格式轉(zhuǎn)換,并盡可能的保留原來的排版,號稱文檔格式轉(zhuǎn)換的瑞士軍刀,本文將給大家介紹一下使用python搭配pandoc實現(xiàn)html批量轉(zhuǎn)word,感興趣的朋友可以參考閱讀下
    2023-09-09
  • 淺談盤點5種基于Python生成的個性化語音方法

    淺談盤點5種基于Python生成的個性化語音方法

    這篇文章主要介紹了淺談盤點5種基于Python生成的個性化語音方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • pycharm 批量修改變量名稱的方法

    pycharm 批量修改變量名稱的方法

    這篇文章主要介紹了pycharm 批量修改變量名稱的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 對python中arange()和linspace()的區(qū)別說明

    對python中arange()和linspace()的區(qū)別說明

    這篇文章主要介紹了對python中arange()和linspace()的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • python去除擴展名的實例講解

    python去除擴展名的實例講解

    下面小編就為大家分享一篇python去除擴展名的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python函數(shù)式編程指南:對生成器全面講解

    Python函數(shù)式編程指南:對生成器全面講解

    今天小編就為大家分享一篇Python函數(shù)式編程指南:對生成器全面講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python如何將一個EXCEL表拆分多個excel表

    Python如何將一個EXCEL表拆分多個excel表

    在Python中,你可以使用pandas庫來讀取Excel文件,并將一個大的Excel表格(工作表)拆分成多個單獨的Excel文件,這篇文章主要介紹了Python如何將一個EXCEL表拆分多個excel表,需要的朋友可以參考下
    2024-06-06
  • Python的迭代器和生成器使用實例

    Python的迭代器和生成器使用實例

    這篇文章主要介紹了Python的迭代器和生成器使用實例,本文講解了迭代器的next方法、__iter__方法和實例以及生成器的代碼實例,需要的朋友可以參考下
    2015-01-01

最新評論

株洲县| 英吉沙县| 乌拉特前旗| 班玛县| 宁武县| 定边县| 颍上县| 拜泉县| 合江县| 贵港市| 永清县| 临清市| 比如县| 江山市| 东宁县| 大连市| 宝坻区| 资阳市| 修文县| 连江县| 屏南县| 陆丰市| 三台县| 云林县| 澎湖县| 黑龙江省| 兰坪| 皮山县| 灵川县| 佛冈县| 清镇市| 齐河县| 民权县| 北流市| 永善县| 始兴县| 万盛区| 鸡西市| 台山市| 怀安县| 九龙城区|