gpt4 book ai didi

python - Python 字节码在 CPython 中究竟是如何运行的?

转载 作者:IT老高 更新时间:2023-10-28 20:31:04 27 4
gpt4 key购买 nike

我正在尝试了解 Python 的工作原理(因为我一直都在使用它!)。据我了解,当你运行 python script.py 之类的东西时,脚本会被转换为字节码,然后解释器/VM/CPython——实际上只是一个 C 程序——读取 python 字节码并相应地执行程序。

这个字节码是如何读入的?它类似于在 C 中读取文本文件的方式吗?我不确定如何将 Python 代码转换为机器代码。 Python解释器(CLI中的python命令)是否真的只是一个已经转换为机器代码的预编译C程序,然后python字节码文件只是通过该程序?换句话说,我的 Python 程序是否从未真正转换为机器码? python 解释器是否已经在机器代码中,所以我的脚本永远不必是?

最佳答案

是的,你的理解是正确的。在 CPython 解释器中基本上(非常基本上)有一个巨大的 switch 语句,上面写着“如果当前的操作码是某某,那么就做这个那个”。

http://hg.python.org/cpython/file/3.3/Python/ceval.c#l790

其他实现,如 Pypy,具有 JIT 编译,即它们将 Python 即时翻译成机器代码。

关于python - Python 字节码在 CPython 中究竟是如何运行的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19916729/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com