第二章

在Python中,从int、list等变量,到函数、类、迭代器,甚至到对象的类型(Object Type),都是Object,他们源自于Python定义的PyObject对象。

在上一章中,我们已经初步感知到了PyObject的存在。

比如对于常数1,我们知道Python并不是直接使用了常数1,而是创建了一个对象用来表示常数1,需要操作时,使用一个PyObject的指针指向他,而且我们也知道,这个对象里面除了存储了常数值,还至少有个东西叫引用计数 ref_cnt,因为在ceval.c 中,我们看到了针对这个对象的Py_INCREF()操作。

比如我们也发现,函数print在Python中也是通过一个对象来表示,我们在执行调用函数的指令CALL_FUNCTION 时,在对Value Stack的操作过程中,函数对象和变量的压栈和出栈的过程并没有什么不同,都是借助PyObject的指针实现。

那么,这个PyObject到底是什么?

results matching ""

    No results matching ""