什么是实现Python虚拟机字节的方法?
时间:2023-05-10 11:10
上面的数据结构用图示如下所示: 现在我们来解释一下上面的数据结构各个字段的含义: ob_refcnt,这个还是对象的引用计数的个数,主要是在垃圾回收的时候有用。 ob_type,这个是对象的数据类型。 ob_size,表示这个对象当中字节的个数。 ob_shash,对象的哈希值,如果还没有计算,哈希值为 -1 。 ob_sval,一个数据存储一个字节的数据,需要注意的是 ob_sval[size] 一定等于 '数据结构
typedef struct { PyObject_VAR_HEAD Py_hash_t ob_shash; char ob_sval[1]; /* Invariants: * ob_sval contains space for 'ob_size+1' elements. * ob_sval[ob_size] == 0. * ob_shash is the hash of the string or -1 if not computed yet. */} PyBytesObject; typedef struct { PyObject ob_base; Py_ssize_t ob_size; /* Number of items in variable part */} PyVarObject; typedef struct _object { Py_ssize_t ob_refcnt; struct _typeobject *ob_type;} PyObject;