Ray's playground

 

Python中的List对象(Python 源码剖析第四章)

PyListObject
 1 typedef struct {
 2     PyObject_VAR_HEAD
 3     /* Vector of pointers to list elements.  list[0] is ob_item[0], etc. */
 4     PyObject **ob_item;
 5 
 6     /* ob_item contains space for 'allocated' elements.  The number
 7      * currently in use is ob_size.
 8      * Invariants:
 9      *     0 <= ob_size <= allocated
10      *     len(list) == ob_size
11      *     ob_item == NULL implies ob_size == allocated == 0
12      * list.sort() temporarily sets allocated to -1 to detect mutations.
13      *
14      * Items must normally not be NULL, except during construction when
15      * the list is not yet visible outside the function that builds it.
16      */
17     Py_ssize_t allocated;
18 } PyListObject; 

posted on 2010-11-13 21:18  Ray Z  阅读(520)  评论(0编辑  收藏  举报

导航