我如何/在哪里可以了解 "under the hood" 在 Python 中发生的事情
How / Where can I learn what's happening "under the hood" in Python
我目前主要在 Python 开发东西,我在 Python 编写了很多代码,我慢慢开始怀疑:“[=17] 的底层到底发生了什么=]?”,我知道 Python 的代码被转换为二进制代码,然后被处理,但是我在哪里才能真正找到发生了什么,例如,创建一个带有值的变量,如何一个值被表示,它存储在哪里,它是如何存储的?代码如何转换?布尔值如何工作,如何修改字节?等。当告诉计算机做什么时,就像向计算机解释您的评论一样,但是计算机如何处理所有这些?
Where/how 我可以了解 Python 或一般情况下我的计算机真正工作的方式吗(看起来在引擎盖下)?我想更多地了解真正发生的事情,希望我能成为一名更好的程序员。
这些资源可能会有帮助:
如果您想查看用 Python 编写的字节码解释器,可以使用 x-python. There is even a gdb (or pdb)-like debugger 来执行 Python 语句或字节码指令。
它支持回到 Python 2.4 左右的字节码,但解释器在 3.5 操作码和更早版本左右是最完整的。
这可以被视为 功能 对于那些想要使用这个项目来增加对字节码的理解以填补空白的人:-)
它基于 Ned Batchelder 的 byterun。
注意:这两个项目都没有将解释器环境与正在解释的字节码完全隔离。但出于教程目的,这应该不是问题。
我目前主要在 Python 开发东西,我在 Python 编写了很多代码,我慢慢开始怀疑:“[=17] 的底层到底发生了什么=]?”,我知道 Python 的代码被转换为二进制代码,然后被处理,但是我在哪里才能真正找到发生了什么,例如,创建一个带有值的变量,如何一个值被表示,它存储在哪里,它是如何存储的?代码如何转换?布尔值如何工作,如何修改字节?等。当告诉计算机做什么时,就像向计算机解释您的评论一样,但是计算机如何处理所有这些?
Where/how 我可以了解 Python 或一般情况下我的计算机真正工作的方式吗(看起来在引擎盖下)?我想更多地了解真正发生的事情,希望我能成为一名更好的程序员。
这些资源可能会有帮助:
如果您想查看用 Python 编写的字节码解释器,可以使用 x-python. There is even a gdb (or pdb)-like debugger 来执行 Python 语句或字节码指令。
它支持回到 Python 2.4 左右的字节码,但解释器在 3.5 操作码和更早版本左右是最完整的。
这可以被视为 功能 对于那些想要使用这个项目来增加对字节码的理解以填补空白的人:-)
它基于 Ned Batchelder 的 byterun。
注意:这两个项目都没有将解释器环境与正在解释的字节码完全隔离。但出于教程目的,这应该不是问题。