我想开始阅读Python源代码。我应该从哪里开始

我想开始阅读Python源代码。我应该从哪里开始,python,c,Python,C,我想开始阅读Python源代码 我的经验, 我非常了解Python和Java。我对其他一些语言的熟练程度各不相同,但C/C+/都不是特别好。我在大学里学的是C语言,但从来没有专业编程过 我阅读此代码的原因 了解python如何在引擎盖下工作 更好地学习C 1对我来说比2更重要 我该怎么做呢?这个问题很广泛,所以我想最好的答案是下载并发疯。选择一个你熟悉的python模块或部分,并检查隐藏的内容。首先,如果你对1最感兴趣,我将从阅读各种模块的python源代码开始(而不是直接跳到C)。每当我阅读一

我想开始阅读Python源代码

我的经验,

我非常了解Python和Java。我对其他一些语言的熟练程度各不相同,但C/C+/都不是特别好。我在大学里学的是C语言,但从来没有专业编程过

我阅读此代码的原因

  • 了解python如何在引擎盖下工作
  • 更好地学习C
  • 1对我来说比2更重要


    我该怎么做呢?

    这个问题很广泛,所以我想最好的答案是下载并发疯。选择一个你熟悉的python模块或部分,并检查隐藏的内容。

    首先,如果你对1最感兴趣,我将从阅读各种模块的python源代码开始(而不是直接跳到C)。每当我阅读一些模块的源代码时,我总是学习Python编程的新知识

    第二,如果你想更好地学习C语言,我个人建议你做一些完全不同的事情:用它编写程序。仅仅静态地阅读源代码并不能让您更好地理解C(或者至少,这是一种有限的方法;它可能会让您更好一点,但阅读源代码只会让您了解这么多)

    在至少用C语言编写了一个中等规模的项目之后,然后,我将开始研究Python源代码。这是更好地了解C语言的唯一方法,我真的认为,在不了解C语言的情况下阅读Python的C源代码不会让你走得很远

    一个C项目的想法

    事实上,这里有一个C项目的想法:用C编写一个Python解释器。很明显,它甚至不可能完成,这是一个相当困难的项目,但如果您只关注语言的某些部分,我认为这是一个好主意

    它不仅可以帮助您学习C语言,还可以帮助您在查看源代码之前更好地理解Python:您必须更深入地理解Python中的大量内容,您将理解Python如何工作的设计权衡,等等

    然后,当你最终阅读Python的代码时,你不仅会理解为什么有些事情是这样工作的,而且你可能会学到很多解决问题的非常酷的C技术。

    1)首先确保你可以构建自己的Python并将其运行到调试器中。 因此,您不仅可以添加打印表达式,还可以在点处中断并遵循代码流。 如果您有允许跟踪函数调用的toolsl,那么您将需要它

    2) 从实现数据类型的文件开始。它们非常容易理解,您可以在阅读代码的同时提高您的C语言技能

    3) 制作UML图-简单的绘图辅助工具,如Argo UML或MS Visio可以在这里帮助您。写下代码流

    4) 阅读python的启动代码。查看基本基础结构的初始化内容和方式

    6) 你需要100%地理解Python端,甚至更难的实现细节,什么是AST,什么是绑定和非绑定方法,以及如何实现它们。当您考虑如何编写python解释器时,就可以进入最后的主步骤

    7) 使用提供的快速调试器C API编写调试器扩展。 这有助于提高你的C语言技能

    8) 完成最后一步,深入解释程序代码的核心。对于一个熟练的C程序员来说,这甚至很难理解。了解表达式是如何计算的,方法looksup是如何缓存的,框架是如何为范围规则设置的,等等。从复杂性和代码行来看,这既困难又复杂


    9) 启动AdobePhotoshop,创建一张漂亮的“Python大师”文凭,并将其挂在办公室的墙上。

    从学习Python C API开始。它是一个大型且丰富的API,Python源代码自然会在所有地方使用它。在了解Py_INCREF等的含义之前,您不会深入了解Python源代码

    我在Pycon上做了一个演示,解释了API:您可能会发现它很有用。C扩展使用与Python代码本身相同的API。

    从Python网站下载。假设您将源代码解压缩到一个名为Python-3.1.1的目录中。我建议您从Python源代码中的两个出发点开始,这两个出发点将帮助您探索Python在幕后的工作方式:

    • 检查Python虚拟机如何执行interperter生成的字节码。Python虚拟机位于名为Python-3.1.1/Python/ceval.c的文件中。VM的核心是一个eval循环,该循环从ceval.c中的PyEval_EvalFrameEx函数开始。通读源代码和内联注释。我相信你会喜欢的

    • 另一个选项是查看如何实现内置的python数据类型,如列表、字典和集合。例如,实例集在Python-3.1.1/Objects/setobject.c中实现。Objects目录还包含其他数据类型的实现


    好问题!我帮不上忙,因为我还没做完,但我会认真注意回答:)糟糕的问题!我不明白您为什么不开始阅读Python源代码。你需要源代码的链接吗?问题是什么?如果有人问我应该如何阅读Django项目,我的答案是。。从url.py开始,查看应用程序/项目响应的URL。接下来看看模型,了解问题领域。现在看看每个url对应的视图。。。我想对它的结构有一个类似的回答。@uswaretech:请不要对你自己的问题发表评论。你自己的问题。请修正它,陈述你真正想知道的。你的问题写得很难理解。请更新问题而不是广告