在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

詳談Python的數(shù)據(jù)模型和對象模型

如意 ? 來源:PythonMind ? 作者:dongfanger ? 2021-02-10 15:59 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

對象三要素

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

identity

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

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

type

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

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

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

結(jié)果為:

詳談Python的數(shù)據(jù)模型和對象模型

value

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

對象容器

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

對象回收

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

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

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

類型決定一切

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

a = 1

b = 1

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

但是對于可變類型:

c = []

d = []

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

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

小結(jié)

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7250

    瀏覽量

    91431
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3501

    瀏覽量

    50161
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4825

    瀏覽量

    86405
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于面向對象數(shù)據(jù)模型的信息管理系統(tǒng)

    探討了面向對象數(shù)據(jù)模型信息管理系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)和信息管理系統(tǒng)實(shí)現(xiàn)技術(shù)。系統(tǒng)設(shè)計(jì)采用面向對象數(shù)據(jù)模型數(shù)據(jù)庫結(jié)構(gòu)采用
    發(fā)表于 02-21 11:35 ?14次下載

    基于對象模型的通用網(wǎng)絡(luò)考試平臺的數(shù)據(jù)設(shè)計(jì)

    利用面向對象技術(shù)分析解決問題的優(yōu)勢,建立起通用網(wǎng)絡(luò)考試平臺系統(tǒng)的對象數(shù)據(jù)模型,然后采用特定的策略將該對象模型轉(zhuǎn)變?yōu)殛P(guān)系
    發(fā)表于 08-15 09:14 ?6次下載

    基于MDA的面向對象時(shí)空數(shù)據(jù)模型研究

    本文以模型驅(qū)動(dòng)架構(gòu)(MDA)為理論基礎(chǔ),以事件驅(qū)動(dòng)的方法構(gòu)建面向對象時(shí)空數(shù)據(jù)模型,探索在關(guān)系數(shù)據(jù)庫及對象關(guān)系型GIS平臺下進(jìn)行面向
    發(fā)表于 07-26 16:57 ?9次下載

    什么是層次數(shù)據(jù)模型數(shù)據(jù)流量分析

    什么是層次數(shù)據(jù)模型 用層次結(jié)構(gòu)表示實(shí)體類型及實(shí)體間聯(lián)系的數(shù)據(jù)模型稱為層次數(shù)據(jù)模型(hierarchical datamodel)。層次結(jié)構(gòu)是樹結(jié)構(gòu),樹的結(jié)點(diǎn)是記錄類型,非根結(jié)點(diǎn)有且
    發(fā)表于 06-17 08:13 ?1618次閱讀

    什么是ActiveDirectory數(shù)據(jù)模型、數(shù)字數(shù)據(jù)網(wǎng)絡(luò)

    什么是ActiveDirectory數(shù)據(jù)模型 從 LDAP 數(shù)據(jù)模型演化而來的模型。該目錄用來保存對象,這些對象代表了由屬性描述的各種端口
    發(fā)表于 06-17 08:13 ?1145次閱讀

    數(shù)據(jù)模型概念及類型劃分

      數(shù)據(jù)(data)是描述事物的符號記錄。模型(Model)是現(xiàn)實(shí)世界的抽象。數(shù)據(jù)模型(Data Model)是數(shù)據(jù)特征的抽象,是數(shù)據(jù)庫管理
    發(fā)表于 08-03 15:05 ?8218次閱讀

    概率XML數(shù)據(jù)模型的綜述

    首先介紹了概率XML數(shù)據(jù)管理技術(shù)的概念,特點(diǎn)和挑戰(zhàn);其次綜述了概率XML數(shù)據(jù)和概率XML數(shù)據(jù)模型,各種模型的核心思想都來自于可能世界模型,通
    發(fā)表于 12-26 11:08 ?20次下載
    概率XML<b class='flag-5'>數(shù)據(jù)模型</b>的綜述

    Google Dremel數(shù)據(jù)模型講解

    首先簡單介紹一下 Dremel 是什么,能解決什么問題。第二部分著重講 Dremel 的數(shù)據(jù)模型,即數(shù)據(jù)結(jié)構(gòu)。第三部分將談一下在此數(shù)據(jù)結(jié)構(gòu)上設(shè)計(jì)的算法。Dremel 的數(shù)據(jù)模型起源于分
    發(fā)表于 11-28 17:05 ?4583次閱讀
    Google Dremel<b class='flag-5'>數(shù)據(jù)模型</b>講解

    數(shù)據(jù)模型的概念和作用

    數(shù)據(jù)模型(DataModel)是現(xiàn)實(shí)世界數(shù)據(jù)特征的抽象,或者說是現(xiàn)實(shí)世界的數(shù)據(jù)模擬。數(shù)據(jù)庫中,用數(shù)據(jù)模型來抽象地表示現(xiàn)實(shí)世界的
    的頭像 發(fā)表于 02-28 15:55 ?1.7w次閱讀

    數(shù)據(jù)模型的三要素

    本視頻主要詳細(xì)介紹了數(shù)據(jù)模型的三要素,分別是數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)約束。
    的頭像 發(fā)表于 02-28 15:57 ?2.3w次閱讀

    數(shù)據(jù)模型有哪些種類

    數(shù)據(jù)庫的類型是根據(jù)數(shù)據(jù)模型來劃分的,而任何一個(gè)DBMS也是根據(jù)數(shù)據(jù)模型有針對性地設(shè)計(jì)出來的,這就意味著必須把數(shù)據(jù)庫組織成符合DBMS規(guī)定的數(shù)據(jù)模型
    的頭像 發(fā)表于 02-28 16:00 ?2.9w次閱讀

    智能電網(wǎng)的數(shù)據(jù)模型標(biāo)準(zhǔn)

    數(shù)據(jù)模型標(biāo)準(zhǔn)可以在智能電網(wǎng)架構(gòu)模型的信息層表示。將數(shù)據(jù)模型從通信協(xié)議和技術(shù)中解耦的概念,被越來越多地應(yīng)用于電力系統(tǒng)相關(guān)的標(biāo)準(zhǔn)化工作中。通過引入的數(shù)據(jù)模型和通信服務(wù)之間的適配層[如IEC
    發(fā)表于 06-10 14:46 ?1585次閱讀

    Modbus協(xié)議的數(shù)據(jù)模型和地址模型

    在使用Modbus協(xié)議的時(shí)候,經(jīng)常會(huì)遇到諸如40001、30001,10001之類的地址,這些數(shù)字代表什么含義呢?這其實(shí)是Modbus協(xié)議的數(shù)據(jù)模型和地址模型
    發(fā)表于 04-07 09:28 ?3712次閱讀

    Matter的數(shù)據(jù)模型和開發(fā)

    在第一篇內(nèi)容中,我們介紹了智能家居互聯(lián)標(biāo)準(zhǔn) Matter會(huì)帶來什么好處。本文,我們來了解一下Matter的數(shù)據(jù)模型和開發(fā)。
    的頭像 發(fā)表于 12-01 10:18 ?1748次閱讀

    CSON使用實(shí)例:定義數(shù)據(jù)模型

    ; char *user; struct project *cson;}; 定義數(shù)據(jù)模型: 對每一個(gè)需要使用cson的結(jié)構(gòu)體,都需要定義相對應(yīng)的數(shù)據(jù)模型 /** 項(xiàng)目結(jié)構(gòu)體數(shù)據(jù)模型
    的頭像 發(fā)表于 10-07 11:10 ?2354次閱讀
    主站蜘蛛池模板: 亚洲情a成黄在线观看 | 亚洲精品美女久久久aaa | 欧美色88 | 97人人模人人揉人人捏 | 欧美猛交喷潮在线播放 | 天堂最新版在线www在线 | 亚洲视频精选 | 国产日韩精品欧美一区色 | 免费黄色一级毛片 | 国产拍拍1000部ww | 一级一级女人18毛片 | 亚洲精品成人a | 色天使亚洲| 天天色视频 | 亚洲第一成年网 | 欧美乱妇15p | 激情九月| 国产精品乳摇在线播放 | 人人插人人 | 欧美 激情 在线 | 黄色地址| 人人揉揉香蕉大青草 | 国产在视频线精品视频2021 | 天天草天天操 | 亚洲男人的天堂久久香蕉 | 色视频线观看在线播放 | 在线视频亚洲欧美 | 国产福利资源在线 | 国产亚洲一区二区在线观看 | 国产乱码精品一区二区三区四川人 | 亚洲视频一区二区 | 亚洲伊人成人 | 99免费观看视频 | 免费午夜网站 | 免费看18污黄 | 亚洲aa在线 | 正在播放羽月希与黑人bd在线 | 免费一级大毛片a一观看不卡 | 大黄网站在线观看 | 欧美日一区二区三区 | 精彩视频一区二区三区 |