Python是解释语言还是编译语言?

简短结论:通常把 Python(指最常用的实现 CPython)称为“解释型语言”,但更准确地说是——
先把源码编译为字节码(.pyc),再由解释器的虚拟机逐条解释执行。所以它是“编译 + 解释”的混合流程,而不是直接编译成机器码运行。

细化说明
• CPython 执行管线:源码 .py → 解析/编译 → 字节码(PyCodeObject,缓存为 pycache/*.pyc) → 虚拟机解释执行。.pyc 不是本机机器码,仅供该 Python 版本使用,加速启动。
• 为什么常说它是解释型:最终并不是把程序提前变成平台机器码,而是由解释器在运行期驱动字节码执行。
• 别的实现:
• PyPy:带 JIT,会把热点路径在运行时编译为机器码,速度常比 CPython 快。
• Cython / mypyc / Nuitka:可把(部分受限的)Python/带类型注解的代码AOT 编译为 C/C++/本机码,获得更接近“编译型”的性能与部署形态。
• 实用小技巧
• 查看字节码:

import dis
def f(x): return x + 1
dis.dis(f)
•	观察 .pyc:运行后在 __pycache__/ 下生成;用 python -B 可禁写 .pyc。

一句话:日常你可以把 Python 当作“解释型”,但底层确实有一个先编译为字节码再解释执行的步骤;不同实现还可引入 JIT 或 AOT,使它更“像编译型”。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MonkeyKing.sun

对你有帮助的话,可以打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值