python源码剖析笔记_【IT专家】Python源码学习笔记(1 基本数据类型)

本文由我司收集整编,推荐下载,如有疑问,请与我司联系

Python

源码学习笔记(

1

基本数据类型)

2014/09/16

0

分类:

python

编程

C

blog.csdn/mayao11/article/details/74264842012-04-04 21:06155

人阅读评论

(0)

收藏举报

pythonlistimmutable

语言

string

算法

Python

源码剖析

这本书相当好。我用

Python

有几个月时间了,这时候读

Python

源码,会对提高

C

语言水平、

Python

水平、算

法基础都有相当的帮助。我目前只看了最前面的数据类型基础,也就是网上可以下

载到的:

Python

源码剖析

.chm

这个文件。学习心得嘛,就是多看多想,有问题的时

候再调试

Python

源码验证想法。欢迎留言交流。衷心的感谢《

Python

源码剖析》作

Robert

Chen(search.pythoner@gmail)Chapter

1.

PyObject

对象大小一旦创建就不变

PyObject{Py_ssize_t

ob_refcnt;struct

_typeobject

*ob_type;}PyVarObject{Py_ssize_t

ob_refcnt;struct

_typeobject

*ob_type;Py_ssize_t

ob_size;//

元素个数

}

内存空间大小

一定和对象类型有关

typedef

struct

_typeobject

{PyObject_VAR_HEADconst

char

*tp_name;Py_ssize_t

tp_basicsize,

tp_itemsize;struct

PyMethodDef

*tp_methods;struct

PyMemberDef

*tp_members;struct

PyGetSetDef

*tp_getset;struct

_typeobject

*tp_base;PyObject

*tp_dict;}PyTypeObject

的类型是用自身定义的?

PyTypeObject

PyType_Type

=

{PyVarObject_HEAD_INIT(

PyType_Type,

0)}

C

语言实现多态只

需要多加一个结构体

ob_type

,把

ob_type*

组合进去即可?指向类型对象的指针不会

增加类型对象的引用计数。此设计方法在

C

语言中用处颇大,参考云风相关博文

《我所偏爱的

C

语言面向对象编程范式》

blog.codingnow/2010/03/object_oriented_programming_in_c.html

但是云风的文章写的

不明不白,互相印证一下就

ok

了。

Chapter 2. PyIntObj

最有特色的地方有两处:

1

小整数特殊处理,永远只存在一份

2

、用多个链表管理所有整数,可以看作特制的

内存分配器。最神奇的是删除某个整数对象时的行为。此章有意思的地方是链表使

用时的灵活技巧,很有意思。

Chapter 3. PyStringObjPyStringObj

是一种

immutable

象,内容不可变。这和能做

Key

有关系吗?

Intern

机制

void

PyString_InternInPlace(PyObject

**p){register

PyStringObject

*s

=

(PyStringObject

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值