Python3 源码阅读入门:如何高效阅读CPython源代码?
如题:
请求大家帮助,在此先谢过各位 :)
Python3 源码阅读入门:如何高效阅读CPython源代码?
没目的看什么源码?
直接看源码确实容易懵。我的建议是先别一头扎进复杂的核心模块,从你常用的内置函数入手。
比如你对 len() 怎么工作好奇,就去找它的实现。在 CPython 源码根目录下,内置函数主要在 Objects/ 和 Python/bltinmodule.c 里。len() 的具体实现在 Objects/abstract.c 中的 PyObject_Size 函数,它会调用对象的 sq_length 或 mp_length 槽。跟着这个线索,你就能看到列表、字典这些内置类型在 Objects/listobject.c、Objects/dictobject.c 里是怎么实现这个接口的。
这样由点及面,比硬啃抽象的结构有效得多。另外,善用 git grep 在源码里搜索函数名、类型名,是最高效的追踪方式。边看边写点小测试代码调用你研究的部分,理解更深。
总结:从具体的小函数切入,用工具追踪调用链。
我曾经为了把 python2 移植到一个嵌入式系统上(非 linux ),研究过一些代码,做了一些修改裁剪,最终也已成功了。
我想说,别为了看代码而看代码,看也看不明白,看了也白看。
看 python 代码究竟是为啥?有什么疑惑?能不能提出 10 个问题?把搞明白这些问题作为终结或是里程碑?
不是有本书么 叫 python 源码解析
只要看好 python 的对象系统 和 runtime 就好了。
有一本书叫 python 源码剖析,不过是讲的 python2.5 的,不知道对 python3 有用不
像 3#楼的同学说的,可以按照 python 源码剖析这本书的目录去看
我最近在慕课网写了个专栏,题目就是 Python 源码剖析,针对 Python 3,对 Python 实现原理兴趣的童鞋可以支持一下:
[Python 源码深度剖析]( https://www.imooc.com/read/76)
平台考虑营销因素需要控制学习难度,为此我做了妥协,对内容做了大量精简,尽量避免深陷 C 源码细节,并配置了大量的图表帮助理解。这样做的好处是,内容更为清晰可读,但牺牲了完整性,结合 Python 源码阅读可能更好。
由于能力有限,我不敢说写得多好,尽心而已。好在前几节是可以免费试读的,谨慎购买哈哈
大伙有什么建议或者感兴趣的主题,可以私信我哈。我可以抽空在这写一写:
[小菜学 Python]( https://python.fasionchan.com/zh_CN/latest/index.html)

哇哦!这个真的很棒,请问有书籍吗?
暂时没有哦

