好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Python數據模型與Python對象模型的相關總結

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

熱門標簽:智能電話機器人調研 400電話在線如何申請 滴滴地圖標注公司 地圖標注可以遠程操作嗎 甘肅高頻外呼系統 天津塘沽區地圖標注 杭州房產地圖標注 江門智能電話機器人 如何申請400電話代理

數據模型==對象模型

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

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

對象三要素

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

identity

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

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

type

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

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

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

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

結果為:

140715000207008
2136059506160
140715000207008

value

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

對象容器

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

對象回收

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

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

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

類型決定一切

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

a = 1
b = 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統計可散列的對象之容器Counter詳解
  • python面向對象基礎之常用魔術方法
  • Python面向對象封裝繼承和多態示例講解
  • Python實現學生管理系統的完整代碼(面向對象)
  • python學習之可迭代對象、迭代器、生成器
  • Python中的類對象示例詳解
  • Python中對象的比較操作==和is區別詳析
  • Python 轉移文件至云對象存儲的方法
  • python 對象真假值的實例(哪些視為False)
  • Python reversed反轉序列并生成可迭代對象
  • Python如何使用vars返回對象的屬性列表
  • Python通過getattr函數獲取對象的屬性值
  • python源碼剖析之PyObject詳解

標簽:德宏 臨汾 漢中 重慶 河池 廊坊 長春 東莞

巨人網絡通訊聲明:本文標題《Python數據模型與Python對象模型的相關總結》,本文關鍵詞  Python,數據,模型,與,對象,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python數據模型與Python對象模型的相關總結》相關的同類信息!
  • 本頁收集關于Python數據模型與Python對象模型的相關總結的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 快穿之女配尝尽男主H| 成年人视频在线观看免费| 偷看农村女人做爰18P一| 横恋母免费观看| 消息称老熟妇乱视频一区二区| 九色在线观看视频| 外国人又粗又大的H文| 自拍偷自拍亚洲精品播放| 日韩成人免费aa在线看| 亚洲A片人獸交XXOO| 69国产精品成人无码视频| 国产激情一区二区三区四区| 美女张开腿让男人操| 小荡货你夹得我好紧| 91天仙tv国产福利精品| 男女边摸边吃奶动态图免费观看| 曰本一级视频| 99精品视频99| 国产二区在线播放| 中文字幕精品无码一区二区| 人与性动交ⅩXXXB女网站入口| 邱淑贞慈禧的秘密生活| 成人免费黄色片| 在公车上玩两个极品| 韩国理伦三级在线播放| 亚洲人成www在线播放| 欧美乱妇狂野欧美在线视频| 三级福利视频| 美女胸乳网站???| 超H高H肉H文教室学长男男动漫| 羞羞小黄文| 小天使抬起臀嗯啊h高| 色噜噜狠狠色欧美亚Av无码视频 | 这里只有精品视频| 老汉gay和老头gayjizz| 91久久久人妻精品精华液| 不戴乳罩的巨胸女教师| 狠狠色丁香久久综合婷婷| 日韩精品电影在线观看| 夜夜夜夜猛噜噜噜噜噜,| 国产精品 欧美激情|