l14107cb 发表于 2024-8-17 08:22:12

小白科普:Python代码是编译执行还是解释执行?


    <div style="color: black; text-align: left; margin-bottom: 10px;">
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="https://p3-sign.toutiaoimg.com/47210000e044485856f4~noop.image?_iz=58558&amp;from=article.pc_detail&amp;lk3s=953192f4&amp;x-expires=1723888717&amp;x-signature=dZpHbZ4ov6qeM5Cx6LX%2FTKtmYI4%3D" style="width: 50%; margin-bottom: 20px;"></p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">Photo by Casey Horner on Unsplash</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">有人在讨论 Python 代码是编译执行还是解释执行?这个问题还<span style="color: black;">能够</span>换一种说法: Python 是编译型语言还是解释型语言?回答这个问题前,<span style="color: black;">咱们</span>先弄清楚什么是编译型语言,什么是解释型语言。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">所说</span>编译执行<span style="color: black;">便是</span>源代码经过编译器编译处理,生成<span style="color: black;">目的</span><span style="color: black;">设备</span>码,<span style="color: black;">便是</span><span style="color: black;">设备</span>能直接运行的二进制代码,下次运行时无需重新编译。<span style="color: black;">不外</span>它是针对特定CPU体系的,这些<span style="color: black;">目的</span>代码只能在特定平台执行,<span style="color: black;">倘若</span>这个程序<span style="color: black;">必须</span>在<span style="color: black;">另一</span>一种 CPU 上面运行,这个代码就<span style="color: black;">必要</span>重新编译。它不具备可移植性,<span style="color: black;">然则</span>执行速度快,C、C++这类语言属于编译型语言。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><img src="https://p3-sign.toutiaoimg.com/471c0002eeb2d8f33849~noop.image?_iz=58558&amp;from=article.pc_detail&amp;lk3s=953192f4&amp;x-expires=1723888717&amp;x-signature=p195rgKHRn%2BnYKaCL5jUIpbN83c%3D" style="width: 50%; margin-bottom: 20px;"></p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">而解释型语言是在代码运行<span style="color: black;">时期</span>逐行翻译成<span style="color: black;">目的</span><span style="color: black;">设备</span>码,下次执行时,还是<span style="color: black;">必须</span>逐行解释,<span style="color: black;">咱们</span><span style="color: black;">能够</span>简单认为 Java、Python 都是解释型语言。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">编译型相当于厨师直接做好一桌子菜,顾客来了直接开吃,而解释型就像吃火锅,厨师把菜洗好,顾客<span style="color: black;">必须</span>自己动手边煮边吃,效率上<span style="color: black;">来讲</span>解释型语言自然比<span style="color: black;">不外</span>编译型语言,当然<span style="color: black;">亦</span>不是绝对了,像 JIT 的效率就很高</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">以上是对编译型语言和解释型语言的一个简单粗暴的区分,<span style="color: black;">然则</span> Python(<span style="color: black;">这儿</span><span style="color: black;">重点</span><span style="color: black;">指的是</span>CPython)并不是严格的解释型语言,<span style="color: black;">由于</span> Python 代码在运行前,会先编译(翻译)成中间代码,<span style="color: black;">每一个</span> .py 文件将被换转成 .pyc 文件,.pyc <span style="color: black;">便是</span>一种字节码文件,它是与平台无关的中间代码,不管你放在 Windows 还是 Linux 平台都<span style="color: black;">能够</span>执行,运行时将由虚拟机逐行把字节码翻译成<span style="color: black;">目的</span>代码。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">咱们</span>安装Python 时候,会有一个 Python.exe 文件,它<span style="color: black;">便是</span> Python 解释器,你写的每一行 Python 代码都<span style="color: black;">是由于</span>它负责执行,解释器由一个编译器和一个虚拟<span style="color: black;">公司</span>成,编译器负责将源代码转换成字节码文件,而虚拟机负责执行字节码,<span style="color: black;">因此</span>,解释型语言其实<span style="color: black;">亦</span>有编译过程,只<span style="color: black;">不外</span>这个编译过程并不是直接生成<span style="color: black;">目的</span>代码,而是中间代码(字节码),<span style="color: black;">而后</span>再<span style="color: black;">经过</span>虚拟机来逐行解释执行字节码。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><strong style="color: blue;">总结</strong></p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">Python代码<span style="color: black;">首要</span>会编程一个字节码文件,再由虚拟机逐行解释,把每一行字节码代码翻译成<span style="color: black;">目的</span>指令给CPU执行。</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">End.</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">运行人员:中国统计网<span style="color: black;">博主</span>(<span style="color: black;">微X</span>号:itongjilove)</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;"><span style="color: black;">博客</span>ID:中国统计网</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">中国统计网,是国内最早的大数据学习网站,公众号:中国统计网</p>
      <p style="font-size: 16px; color: black; line-height: 40px; text-align: left; margin-bottom: 15px;">//www.itongji.cn</p>
    </div>




听听海 发表于 2024-8-30 15:32:03

期待更新、坐等、迫不及待等。

Myramillan 发表于 2024-9-24 22:03:16

期待你更多的精彩评论,一起交流学习。

nykek5i 发表于 2024-10-5 01:25:19

同意、说得对、没错、我也是这么想的等。

m5k1umn 发表于 2024-10-24 23:12:02

你的见解真是独到,让我受益匪浅。
页: [1]
查看完整版本: 小白科普:Python代码是编译执行还是解释执行?