Python|此整型非彼“整型”
2018-11-24 本文已影响1人
5a41eb2ceec6
当我们在Python中定义一个整型时,如x = 1000,x并不是一个“原生”整型,而是一个指针:
- 指向一个C语言的复合结构体
- 该结构体中包含一些值
查看int的源代码
int源代码
我们可以看到,整型实际上包括4部分:
- ob_refcnt是一个引用计数,它可以帮助Python处理内存的分配和回收
- ob_type是变量的类型编码
- ob_size指定数据成员的大小
- ob_digit包含Python变量表示的实际整型值
这里PyObject_HEAD是结构体重包含引用计数、类型编码和其他之前提到的内容的部分。正是因为包含了大量额外的信息,所以其可以自由、动态地编码。但是这些额外信息也会成为负担。
参考资料:
《Python数据科学手册》