电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python數據模型與Python對象模型的相關總結

瀏覽:47日期:2022-06-29 09:43:51
數據模型==對象模型

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

官方文檔嚴謹說法,Python程序中的所有數據都是用對象或對象之間的關系來表示的。

對象三要素

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

identity

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

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

type

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

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

類型在創建后也不會改變,雖然可以進行類型轉換,但轉換實際會產生新對象:

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

結果為:

1407150002070082136059506160140715000207008value

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

對象容器

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

對象回收

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

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

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

類型決定一切

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

a = 1b = 1

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

但是對于可變類型:

c = []d = []

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

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

小結

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

參考資料:

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

以上就是Python數據模型與Python對象模型的相關總結的詳細內容,更多關于python數據模型與對象模型的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 带式压滤机_污泥压滤机_污泥脱水机_带式过滤机_带式压滤机厂家-河南恒磊环保设备有限公司 | 电子万能试验机_液压拉力试验机_冲击疲劳试验机_材料试验机厂家-济南众标仪器设备有限公司 | 防爆电机_ybx3系列电机_河南省南洋防爆电机有限公司 | 合肥活动房_安徽活动板房_集成打包箱房厂家-安徽玉强钢结构集成房屋有限公司 | 时代北利离心机,实验室离心机,医用离心机,低速离心机DT5-2,美国SKC采样泵-上海京工实业有限公司 工业电炉,台车式电炉_厂家-淄博申华工业电炉有限公司 | uv机-uv灯-uvled光固化机-生产厂家-蓝盾机电 | jrs高清nba(无插件)直播-jrs直播低调看直播-jrs直播nba-jrs直播 上海地磅秤|电子地上衡|防爆地磅_上海地磅秤厂家–越衡称重 | 砂石生产线_石料生产线设备_制砂生产线设备价格_生产厂家-河南中誉鼎力智能装备有限公司 | 伸缩节_伸缩器_传力接头_伸缩接头_巩义市联通管道厂 | 电子厂招聘_工厂招聘_普工招聘_小时工招聘信息平台-众立方招工网 | 塑料检查井_双扣聚氯乙烯增强管_双壁波纹管-河南中盈塑料制品有限公司 | 不锈钢复合板|钛复合板|金属复合板|南钢集团安徽金元素复合材料有限公司-官网 | 液压压力机,液压折弯机,液压剪板机,模锻液压机-鲁南新力机床有限公司 | 斗式提升机_链式斗提机_带式斗提机厂家无锡市鸿诚输送机械有限公司 | 匀胶机旋涂仪-声扫显微镜-工业水浸超声-安赛斯(北京)科技有限公司 | 培训无忧网-教育培训咨询招生第三方平台 | 微信小程序定制,广州app公众号商城网站开发公司-广东锋火 | 长沙广告公司_制作,长沙喷绘_发光字_招牌制作_长沙泓润广告官网 长城人品牌官网 | 气动调节阀,电动调节阀,自力式压力调节阀,切断阀「厂家」-浙江利沃夫自控阀门 | 玉米深加工机械,玉米加工设备,玉米加工机械等玉米深加工设备制造商-河南成立粮油机械有限公司 | 品牌广告服务平台,好排名,好流量,好生意。 | EFM 022静电场测试仪-套帽式风量计-静电平板监测器-上海民仪电子有限公司 | 拖链电缆_柔性电缆_伺服电缆_坦克链电缆-深圳市顺电工业电缆有限公司 | 螺杆式冷水机-低温冷水机厂家-冷冻机-风冷式-水冷式冷水机-上海祝松机械有限公司 | 西门子伺服控制器维修-伺服驱动放大器-828D数控机床维修-上海涌迪 | BOE画框屏-触摸一体机-触控查询一体机-触摸屏一体机价格-厂家直销-触发电子 | 环境模拟实验室_液体-气体控温机_气体控温箱_无锡双润冷却科技有限公司 | 净化车间_洁净厂房_净化公司_净化厂房_无尘室工程_洁净工程装修|改造|施工-深圳净化公司 | 工业机械三维动画制作 环保设备原理三维演示动画 自动化装配产线三维动画制作公司-南京燃动数字 聚合氯化铝_喷雾聚氯化铝_聚合氯化铝铁厂家_郑州亿升化工有限公司 | 不锈钢搅拌罐_高速搅拌罐厂家-无锡市凡格德化工装备科技有限公司 | 京港视通报道-质量走进大江南北-京港视通传媒[北京]有限公司 | 福兰德PVC地板|PVC塑胶地板|PVC运动地板|PVC商用地板-中国弹性地板系统专业解决方案领先供应商! 福建成考网-福建成人高考网 | 浙江寺庙设计-杭州寺院设计-宁波寺庙规划_汉匠 | 电地暖-电采暖-发热膜-石墨烯电热膜品牌加盟-暖季地暖厂家 | 复盛空压机配件-空气压缩机-复盛空压机(华北)总代理 | 河南卓美创业科技有限公司-河南卓美防雷公司-防雷接地-防雷工程-重庆避雷针-避雷器-防雷检测-避雷带-避雷针-避雷塔、机房防雷、古建筑防雷等-山西防雷公司 | 帽子厂家_帽子工厂_帽子定做_义乌帽厂_帽厂_制帽厂_帽子厂_浙江高普制帽厂 | 深圳昂为官网-气体分析仪,沼气分析仪,动态配气仪,气体传感器厂家 | 微波消解仪器_智能微波消解仪报价_高压微波消解仪厂家_那艾 | 企业管理培训,企业培训公开课,企业内训课程,企业培训师 - 名课堂企业管理培训网 | 上海皓越真空设备有限公司官网-真空炉-真空热压烧结炉-sps放电等离子烧结炉 |