《Python源碼剖析》閱讀筆記:第一章-Python對象

來源:互聯網
上載者:User
第一章-Python對象

 所有Python對象都直接或間接繼承自PyObject,PyObject的定義很簡單:
struct _object {

Py_ssize_t ob_refcnt; // 引用計數
struct PyTypeObject *ob_type; // 類型對象指標

} PyObject;
引用計數決定對象的生存。當ob_refcnt為0時銷毀對象

Python類型對象(PyTypeObject)裡的成員就是充當C++中的虛函數表。

PyTypeObject也是一種對象,同樣繼承自PyObject,其中除了記錄對象名和對象大小等資料之外就是一系列的函數指標。包括怎麼回收對象記憶體的解構函式,怎麼列印對象,屬性相關函數,以及數值型對象(Number)函數系、序列對象(Sequence)函數系、映射對象(Mapping)函數系等等一系列函數。不同類型的對象根據自身需要設定函數指標的值。比如整數對象PyIntObject只有Number函數,而沒有Sequence和Mapping函數

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.