0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

python是解释型语言吗?会被编译吗?

汽车玩家 来源:科技i关注 作者:科技i关注 2020-01-16 17:25 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Python 是解释型的语言吗?它会被编译吗?

这个问题没有想象中那么好回答。和很多人认识世界一样,习惯以一个简单的模型去评判一些事物。而事实上,里面包含了很多很多的细节。

通常的说法,编译代表着将一个高级语言转化为 CPU 能执行的机器码。当你编译 C 的时候,的确是做的这样的操作。编译的结果是一个二进制可执行文件,这时你的系统可直接运行这个程序。

与此相对的,解释的意思是这样的:程序运行时每次读源文件中的一行代码,并执行相应的操作,就这样一行一行的重复下去。当然,所谓的脚本语言就是这么运行的。

在 Python 中,源代码会被编译为更低级的一种形式,我们称之为字节码。字节码是一串指令,和 CPU 的指令集类似。但是字节码并不直接被 CPU 执行,而是在虚拟机中执行的。当然,这里的虚拟机并不模仿整个操作系统的环境,只是提供了字节码执行的一个环境。

Python 还有一个重要的特性,就是交互式命令行。你可以敲入一行 Python 语句,然后立刻回车执行。实际上,即使是这个过程,Python 同样是先转为字节码,然后执行。而这个交互式命令行这个特性,在很多编译型语言里是没有的。同样因为没有显示的调用编译程序,很多人将执行 Python 源文件的程序叫做 Python 解释器。

即使比较简略,但还是补充下。部分编译型语言比如 C 或者 JAVA 也有交互式命令行,但这些并不是这些语言的重心。JAVA 刚开始是编译成字节码然后执行,后面有了即时编译技术( JIT )可以直接编译成机器码,与 C 类似。

从上面的描述可以看出,不管是解释还是编译,并没法完全分离开来。很多时候,我们想用一些词将现有的编程语言分个类,但事实上要办到这一点太难了。

Python 之所以称为解释型语言,是因为它没有显示的调用编译操作,表现出解释型的特性比较多而已。但事实上,编译是存在的,具体怎么编译就看语言的实现了,也就是解释器的设计。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11226

    浏览量

    223173
  • python
    +关注

    关注

    57

    文章

    4860

    浏览量

    89663
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    开源鸿蒙技术大会2025丨编译器与编程语言分论坛:语言驱动系统创新,编译赋能生态繁荣

    在万物智联的时代背景下,操作系统底层能力的构建离不开编程语言编译器的关键支撑。作为开源鸿蒙生态的核心技术,语言设计与编译器、虚拟机实现的进步直接关系到开发效率、运行性能与系统安全。本
    的头像 发表于 11-20 17:24 562次阅读
    开源鸿蒙技术大会2025丨<b class='flag-5'>编译</b>器与编程<b class='flag-5'>语言</b>分论坛:<b class='flag-5'>语言</b>驱动系统创新,<b class='flag-5'>编译</b>赋能生态繁荣

    一文了解Mojo编程语言

    Mojo 语言的具体介绍: 核心特点 Python 兼容性 Mojo 支持大部分 Python 语法和标准库,可直接调用 Python 生态系统中的库,降低了学习成本。 极致性能优化
    发表于 11-07 05:59

    GCC编译器,怎么才能实现c文件中未被调用的函数,不会被编译呢?

    GCC编译器,怎么才能实现c文件中未被调用的函数,不会被编译?有什么编译选项可以设置吗? 移植代码,有些函数没被调用的函数想留在代码里,但不想被编译
    发表于 09-28 12:25

    termux如何搭建python游戏

    Pygame),确保已安装`clang`编译器:`apt install -y clang` 3. 权限问题:若需访问手机文件,安装`termux-setup-storage`并授权存储访问权限。 通过以上步骤,即可在Termux中搭建完整的Python游戏开发环境
    发表于 08-29 07:06

    C++ 与 Python:树莓派上哪种语言更优?

    Python是树莓派上的首选编程语言,我们的大部分教程都使用它。然而,C++在物联网项目中同样广受欢迎且功能强大。那么,在树莓派项目中选择哪种语言更合适呢?Python因其简洁性、丰富
    的头像 发表于 07-24 15:32 676次阅读
    C++ 与 <b class='flag-5'>Python</b>:树莓派上哪种<b class='flag-5'>语言</b>更优?

    linux虚拟环境中调用Linux 版matlab编译python库时出错

    matlab代码编译为CAO_pythonpython库,其中cp_Main_python.m为入口文件,编译后生成的文件有mccExcl
    发表于 07-18 10:40

    FPGA Verilog HDL语法之编译预处理

    Verilog HDL语言和C语言一样也提供了编译预处理的功能。“编译预处理”是Verilog HDL编译系统的一个组成部分。Verilog
    的头像 发表于 03-27 13:30 1127次阅读
    FPGA Verilog HDL语法之<b class='flag-5'>编译</b>预处理

    零基础入门:如何在树莓派上编写和运行Python程序?

    是一种非常有用的编程语言,其语法易于阅读,允许程序员使用比汇编、C或Java等语言更少的代码行。Python编程语言最初实际上是作为Linux的脚本
    的头像 发表于 03-25 09:27 1584次阅读
    零基础入门:如何在树莓派上编写和运行<b class='flag-5'>Python</b>程序?

    什么样的代码会被编译器优化

    现在的编译器有多智能,可能你辛辛苦苦写的代码,在编译器看来就是几句废话,直接被删除掉。
    的头像 发表于 01-16 16:38 948次阅读

    gitee 支持的编程语言有哪些

    Gitee 支持的常见编程语言Python :一种广泛使用的高级编程语言,以其清晰的语法和代码可读性而闻名。 Java :一种面向对象的编程语言,被广泛用于企业级应用开发。 C+
    的头像 发表于 01-06 09:50 1128次阅读

    Triton编译器的常见问题解决方案

    Triton编译器作为一款专注于深度学习的高性能GPU编程工具,在使用过程中可能会遇到一些常见问题。以下是一些常见问题的解决方案: 一、安装与依赖问题 检查Python版本 Triton编译器通常
    的头像 发表于 12-24 18:04 6514次阅读

    Triton编译器安装步骤详解

    1. 系统要求 在开始安装之前,请确保您的系统满足以下要求: 操作系统 :支持 Linux 或 Windows(通过 WSL 或 Cygwin)。 编译器 :GCC 或 Clang。 CMake
    的头像 发表于 12-24 17:35 4683次阅读

    Triton编译器支持的编程语言

    Triton编译器支持的编程语言主要包括以下几种: 一、主要编程语言 Python :Triton编译器通过
    的头像 发表于 12-24 17:33 1503次阅读

    Triton编译器与其他编译器的比较

    的GPU编程框架,使开发者能够编写出接近手工优化的高性能GPU内核。 其他编译器 (如GCC、Clang、MSVC等): 定位:通用编译器,支持多种编程语言,广泛应用于各种软件开发场景。 目标:提供稳定、高效的
    的头像 发表于 12-24 17:25 1634次阅读

    Triton编译器功能介绍 Triton编译器使用教程

    Triton 是一个开源的编译器前端,它支持多种编程语言,包括 C、C++、Fortran 和 Ada。Triton 旨在提供一个可扩展和可定制的编译器框架,允许开发者添加新的编程语言
    的头像 发表于 12-24 17:23 2776次阅读