美文网首页
python对象实现

python对象实现

作者: lintong | 来源:发表于2015-02-25 22:04 被阅读65次

所有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函数。

相关文章

  • 1. Python3源码—内建对象

    1.1. Python内的对象 Python中的类和实例都是通过Python内的对象来实现的。Python中已经预...

  • Python源码学习笔记 2 整数对象

    Python中的整数类型是不可变对象,为了提高python运行效率,内部实现了小整数对象池(数组实现),和通用整数...

  • python中"面向对象"来啦........

    python是一种面向对象的语言。 Python中通过使用类(class)和对象(object)来实现面向对象 面...

  • python对象实现

    所有Python对象都直接或间接继承自PyObject,PyObject的定义很简单: 引用计数决定对象的生存。当...

  • C的模块化与面向对象

    引言 最近尝试看了下《python源码剖析》,看完python的对象模型后,发现python是使用C语言实现了对象...

  • python学习笔记 -- list内部实现(转)

    看一下python的 cpython 实现(cpython就是python的c实现版本) 列表对象的c语言结构体 ...

  • PyObject多态的实现

    PyObject的多态实现 PyObject 是 Python 所有对象的基石,所有其他对象 PyIntObjec...

  • python面试题2

    python对象创建的过程python实现单例的几种方法@classmethod, @staticmethod用生...

  • Python list 实现原理

    Python list 实现原理 我们通过本文描述CPython实现 list 列表对象,Cpython是pyt...

  • pickle- Python对象序列化

    pickle模块实现Python对象结构的二进制协议序列化和反序列化。pickling将Python对象层次结构转...

网友评论

      本文标题:python对象实现

      本文链接:https://www.haomeiwen.com/subject/xffpxttx.html