现在想看 Python 源码, C 语言需要达到哪种水平?或者说怎么样快速提升到这种水平?

2016-09-24 10:20:03 +08:00
 uhayate
我的 C 语言学的很水。最近对 Python 底层的东西感兴趣,想看看源码,不过看到那么多的 C 语言代码就头疼。
所以想问问,通过哪些途径,可以快速提升 C 源代码的阅读水平?(若书籍、代码等请列举,谢谢)
3464 次点击
所在节点    Python
9 条回复
zoowii
2016-09-24 11:08:54 +08:00
和 C 语言水平应该关系不大
xuqd
2016-09-24 11:09:28 +08:00
《 Python 源码剖析 》
uhayate
2016-09-24 11:16:03 +08:00
@xuqd 正在看。
wizardforcel
2016-09-24 11:18:23 +08:00
《 Python 源码剖析 》

CPython 是 C 写的面向对象,如果不刻意去理解还真看不懂。
uhayate
2016-09-24 11:29:09 +08:00
@wizardforcel 就是咯。 C 语言水平太菜了,所以需要提升一下。
ruoyu0088
2016-09-24 13:11:32 +08:00
有个好的代码阅读软件比较重要。然后就是用 ctypes, cffi 之类的写一些实验代码帮助理解。
sylecn
2016-09-24 13:21:03 +08:00
如果你对编译器和语言感兴趣,才建议看 python 源码。否则,单纯为了学 C ,不推荐看 CPython 源码。
如果 C 基础不行,建议选一种简单的 scheme 实现开始看,不要上来就看 python 这么复杂而且有历史包袱的语言。
看编译器的实现,需要对语言和编译器技术有一定了解,单单了解 C 的库和语法是远远不够的。所以如果这些有欠缺,先补一下编译器原理之类的,再看源码会比较容易。

如果你只是看部分标准库的实现,那就当我没说。那些内容除了遵循 python 模块规范和使用 python 数据结构,其它都和标准 C 差不太多。看多了就懂了。
starcraft
2016-09-24 13:40:43 +08:00
和 c 水平没太大关系,因为这是基础中的基础。读 python 源码轻不轻松取决于你整个编译知识体系。你纠结错了关键点。 c 不过关的话,连第一步都没迈出....
jmp2x
2016-09-24 17:04:59 +08:00
@wizardforcel 最近看了些,确实是,用结构体去实现类对象,结构体的嵌套前置,就是父类,实现的很有意思。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/308617

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX