
Python源码剖析
文章平均质量分 76
balabalamerobert
这个作者很懒,什么都没留下…
展开
-
Python源码剖析[1] —— 编译Python
[ 绝对原创,转载请注明出处] 注意 :第一部分Python总体架构采用了网络文档《The Architecture of Python》,这是网络上唯一可见的以剖析Python实现为己任的文档。可惜是作为一门课程的作业的结果,太简略了,有点“食之无味,弃之可惜”的感觉。这里借用其介绍Python总体架构的部分,比较简略,以后我会再充实。Python源码剖析——编译Python本文作者: Robe原创 2005-12-31 21:56:00 · 10313 阅读 · 6 评论 -
Decorator的另一种实现方式
这一切都源自python-cn邮件列表上的一个话题,这个话题中,leopay给出了另一种实现decorator的方式:一般decorator都是写一个嵌套函数,def A(func): def new_func(*args, **argkw): #做一些额外的工作 return func(*args, **argkw) #调用原函数继续进行处理 return原创 2008-04-19 23:46:00 · 17748 阅读 · 3 评论 -
Python源码剖析[12] —— 字典对象PyDictObject(1)
[绝对原创 转载请注明出处]Python源码剖析——字典对象PyDictObject(1)本文作者: Robert Chen (search.pythoner@gmail.com) 1 散列表概述元素和元素之间通常可能存在某种联系,这种神秘的联系使本来绝不相同的两个元素捆绑在一起,而别的元素则被排斥在外。比如对应于“2倍”,这样一种联系,6和3就是这样的两个元素,而4和2同样也是被原创 2005-12-31 21:45:00 · 2876 阅读 · 1 评论 -
Python源码剖析[11] —— PyListObject对象(3)
[绝对原创 转载请注明出处]Python源码剖析——PyListObject对象(3)本文作者: Robert Chen (search.pythoner@gmail.com ) 3. PyListObject对象缓冲池还记得吗,刚才我们按下了一个有趣的话题。没错,就是那个缓冲池,free_list。现在,是揭开它的神秘面纱的时候呢。我们想知道的问题是:free_list中所缓冲的PyL原创 2006-01-05 00:06:00 · 9125 阅读 · 0 评论 -
Python源码剖析[9] —— PyListObject对象(1)
[绝对原创 转载请注明出处]Python源码剖析——PyListObject对象(1)本文作者: Robert Chen (search.pythoner@gmail.com ) 1. PyListObject对象元素的一个群是一个非常重要的抽象概念,我们可以将符合某一特性的一堆元素聚集为一个群,当然,还要可以向群中添加或删除元素。这样的群的概念对于编程语言十分重要,C语言就内建了数组的原创 2006-01-05 00:03:00 · 2281 阅读 · 0 评论 -
Python源码剖析[6] —— 字符串对象(1)
[绝对原创 转载请注明出处]字符串对象,在任何一门主流编程语言中,都是整数对象之外使用最广泛的对象。它和整数对象犹如少林,武当,双峰对峙。本章将研究Python中的字符串对象的实现,同整数对象一样,字符串对象的实现中采用了很多额外的机制来保证性能的优化。 本章内容分为三个部分:1. 研究Python中的字符串对象PyStringObject2. 研究字符串对象的效率加速机制3. 分析字符串连接操作原创 2006-01-05 00:00:00 · 3105 阅读 · 1 评论 -
Python源码剖析[2] —— 对象机制
[绝对原创 转载请注明出处]Python源码剖析——对象机制本文作者: Robert Chen(search.pythoner@gmail.com) 1. 对象在Python的世界中,一切都是对象,一个整数是一个对象,一个字符串也是一个对象,更为奇妙的是,类型也是一个对象,整数类型是一个对象,字符串类型也是一个对象。从1980年Guido在那个圣诞节揭开Python世界的大幕开始,一直到原创 2005-12-31 22:01:00 · 8421 阅读 · 1 评论 -
Python源码剖析[15] —— 最简单的Python实现:Small Python
[绝对原创 转载请注明出处]Python源码剖析——Small Python本文作者: Robert Chen (search.pythoner@gmail.com ) 1. Small Python在详细考察了Python中最常用的几个对象之后,我们现在完全可以利用这些对象做出一个最简单的Python。这一章的目的就是模拟出一个最简单的Python——Small Python。 在Sm原创 2006-01-05 00:11:00 · 14567 阅读 · 3 评论 -
Python源码剖析[10] —— PyListObject(2)
[绝对原创 转载请注明出处]Python源码剖析——PyListObject对象(2)本文作者: Robert Chen (search.pythoner@gmail.com ) 2. PyListObject的创建与维护2.1 创建Python中只提供了唯一一种创建PyListObject对象的方法—PyList_New: [listobject.c] PyObject* Py原创 2006-01-05 00:04:00 · 8743 阅读 · 2 评论 -
Python源码剖析[5] —— 整数对象(3)
[绝对原创 转载请注明出处]Python源码剖析——整数对象PyIntObject(3)本文作者: Robert Chen (search.pythoner@gmail.com) 3 Hack PyIntObject现在,让我们荡起双桨,哦不对,让我们挽起衣袖和裤脚J,来和PyIntObject大战一场。我们渴望在运行时观察Python的整数对象体系的变化。这一点,完全可以通过修改原创 2005-12-31 22:10:00 · 2406 阅读 · 0 评论 -
Python源码剖析[14] —— 字典对象PyDictObject(3)
Python源码剖析——字典对象PyDictObject(3)本文作者: Robert Chen (search.pythoner@gmail.com) 4 PyDictObject对象缓冲池前面我们提到,在PyDictObject的实现机制中,同样使用了缓冲池的技术: [dictobject.c] #define MAXFREEDICTS 80 static PyDictObje原创 2006-01-05 00:09:00 · 12996 阅读 · 1 评论 -
Python源码剖析[13] —— 字典对象PyDictObject(2)
[绝对原创 转载请注明出处]Python源码剖析——字典对象PyDictObject(2)本文作者: Robert Chen (search.pythoner@gmail.com) 3 PyDictObject的创建和维护3.1.1 PyDictObject对象创建[dictobject.c] typedef PyDictEntry dictentry; typedef Py原创 2006-01-05 00:08:00 · 19290 阅读 · 0 评论 -
Python源码剖析[8] —— 字符串对象(3)
[绝对原创 转载请注明出处]Python源码剖析——字符串对象PyStringObject(3)本文作者: Robert Chen(search.pythoner@gmail.com ) 5. PyStringObject效率相关问题关于PyStringObject,有一个地球人都知道的严重影响Python程序执行效率的问题,有一种说法,绝大部分执行效率特别低下的Python程序都是由于原创 2006-01-05 00:02:00 · 2156 阅读 · 1 评论 -
Python源码剖析[7] —— 字符串对象(2)
[绝对原创 转载请注明出处]Python源码剖析——字符串对象PyStringObject(2)本文作者: Robert Chen(search.pythoner@gmail.com ) 3. Intern机制无论是PyString_FromString还是PyString_FromStringAndSize,我们都注意到,当字符数组的长度为0或1时,需要进行了一个特别的动作:PyStr原创 2006-01-05 00:01:00 · 2981 阅读 · 1 评论 -
Python源码剖析[4] —— 整数对象(2)
[绝对原创 转载请注明出处]Python源码剖析——整数对象PyIntObject(2)本文作者: Robert Chen (search.pythoner@gmail.com) 2 PyIntObject对象的创建和维护2.1 对象创建的三种途径 在intobject.h中可以看到,可以从三种途径获得一个PyIntObject对象: PyObject *PyInt原创 2005-12-31 22:09:00 · 5934 阅读 · 2 评论 -
Python源码剖析[3] —— 整数对象(1)
[绝对原创 转载请注明出处]作为Python中最简单的对象,整数对象是研究Python对象体系的一个非常好的切入点。直观上会认为整数对象的实现非常简单,如果单纯以整数对象而言,实现确实非常简单。然而在Python中,为了运行效率,实际上存在着一个以缓冲池为核心的整数对象的体系结构,实际上,Python各种对象几乎都拥有这样一个以缓冲池为核心的体系结构,理解这一点对Python运行时行为的了解有重要原创 2005-12-31 22:05:00 · 3690 阅读 · 2 评论 -
《Python源码剖析》上架
经过几年的打磨,在博文视点的大力支持下,《Python源码剖析》终于上架了。当年开始剖析Python源码的时候,对于出版,心里只有一个朦朦胧胧的梦想,甚至可以说是幻想,现在幻想成真,回想一下,其间的跌宕也真让人感慨。只要坚持,梦想终会成真。很多书籍出版的时候都会说,自此书以后,学xxx技术的可以分为两类,一类是读过此书的,一类是没读过此书的。我不敢做如此的豪言,但是我敢保证,这本书的内容会让你花的原创 2008-07-21 11:03:00 · 28900 阅读 · 38 评论