Python如何运行程序

Python如何运行程序

Python解释器简介

  • 解释器是一种让其他程序运行起来的程序。
  • Python解释器将读取程序,并按照其中的命令执行,得出结果。
  • 解释器是代码与机器的计算机硬件之间的软件逻辑层。
  • 解释器本身可以用C程序实现,或者一些Java类实现。

程序执行

程序员视角

  • Python程序仅是一个包含Python语句的文本文件。
  • Python文件是以.py结尾的。从技术上讲,这种命名方案在被”导入”时才是必须的。
  • Python解释器讲从头至尾按照顺序运行文件中的语句。

Python解释器视角

字节码编译

  • Python内部会先将源代码编译成字节码的形式。字节码是一种低级的,与平台无关的表现形式。
  • 源文件的修改和Python版本的改变都会触发新的字节码的编译。
  • 字节码只会针对那些被导入的文件而生成,而不是顶层的执行脚本。(严格来说,这是一种针对”导入”的优化)

Python虚拟机(PVM)

  • 一旦程序编译成字节码,之后的字节码发送到通常称为Python虚拟机(PVM)的程序上来执行。
  • 本质上PVM就是迭代运行字节码指令的一个大循环,一个接一个地完成操作。
  • 从技术上讲,它只是所谓”Python解释器”的最后一步。
    Python如何运行程序

性能的含义

  • Python的工作中通常没有构建或”make”的步骤。
  • Python字节码不是机器的二进制代码。
  • PVM仍需解释字节码,并且字节码指令比CPU指令需要更多的工作。
  • 与其他经典解释器不同,Python仍有内部编译的步骤:Python并不需要反复地重新分析和重新分解每一行源代码语句的文本。
  • 纯Python代码的运行速度介于传统编译语言和传统解释语言之间。

开发的含义

  • Python的执行模型导致开发和执行的环境没有区别。
  • 在Python中,编译器总是在运行时出现,并且是运行系统的一部分。

posted @
2023-01-19 14:06 Samsong1991

阅读(
443

) 评论(
) 编辑

Original: https://www.cnblogs.com/samsong1991/p/17021143.html
Author: Samsong1991
Title: Python如何运行程序

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/807832/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 02-pytest中的fixture(固件)的运用

    一、固件(Fixture)是一些函数,pytest 会在执行测试函数之前(或之后)加载运行它们。我们可以利用固件做任何事情,其中最常见的可能就是数据库的初始连接和最后关闭操作。 在…

    Python 2023年9月13日
    034
  • Python标准库模块之heapq – 堆构造

    读前福利:几百本经典书籍https://www.johngo689.com/2158/ [TencentCloudSDKException] code:FailedOperatio…

    Python 2023年6月3日
    063
  • Python基础学习四

    在 python 里,元组和列表几乎没什么不同,主要是元组不能改变(这叫没有什么区别?),就是说,不能添加、修改或删除元组里的元素。元组使用小括号 ( ),列表使用方括号 [ ]。…

    Python 2023年11月6日
    032
  • django笔记第七节

    1打开myapp/urls.py文件,将其修改成下面的样子:每个类视图都有一个as_view()方法,用于在urlconf(也就是上图中的urlpatterns)中使用。这个方法会…

    Python 2023年8月4日
    040
  • [Go疑难杂症]为什么nil不等于nil

    现象 在日常开发中,可能一不小心就会掉进 Go 语言的某些陷阱里,而本文要介绍的 nil ≠ nil 问题,便是其中一个,初看起来会让人觉得很诡异,摸不着头脑…

    Python 2023年10月17日
    043
  • Unity制作 小球吃金币 游戏

    工程源文件下载地址-百度网盘 1. 新建一个项目 2. 新建一个平面对象 3. 新建一个材质球 为材质球设置颜色 5. 将材质球拖拽赋值给平面 6. 创建立方体对象,拉伸至平面宽度…

    Python 2023年9月29日
    034
  • python-numpy基础知识

    参考资料:《跟着孙兴华学习Numpy基础》python Numpy 教程 笔记: 链接:https://pan.baidu.com/s/1m9g9An6JdOEWdtPiw6OId…

    Python 2023年8月23日
    069
  • 【HTML5】登录页面制作简易版

    刚开始学习Java。文件的命名,讲道理应该以英文为主,但是英语又不好,所以只好用拼音,最痛苦的应该算是那些英语又不好,又想秀一下的程序员,一半英语一半拼音,如mainFangFa~…

    Python 2023年10月8日
    047
  • 记一个“奇葩”需求的实现

    1、前言 我们这边没有专门的产品经理, UI对产品的设计基本具有决定权,说实话,是有那么一点可怖的(前后改了很多次,差一点就改回原版了,我自己都觉得不好意思了🤣)。 🤔有没有一种可…

    Python 2023年10月23日
    039
  • dataframe在特定列 插入_DataFrame在任意处添加一列或者多列的方法

    很多时候我们需要在任意处添加一列,而非末尾添加一列,下面就介绍一下几种方法 1.df.insert但是这个允许插入一列 DataFrame.insert(loc,column,va…

    Python 2023年8月7日
    060
  • Python Django学习

    一、环境搭建 VM上面安装 centos7虚拟机 win10环境 VScode 为了操作方便,将django环境部署在centos7,写代码在VSCOde中写 环境部署: cent…

    Python 2023年8月4日
    061
  • pandas合并groupby_pandas groupby 使用指南

    groupby技术 groupby 是pandas 中非常重要的一个函数, 主要用于数据聚合和分类计算. 其思想是”split-apply-combine”…

    Python 2023年8月7日
    036
  • Python3教程:字典转为成员变量的方法

    当我们在Python中写一个class时,如果有一部分的成员变量需要用一个字典来命名和赋值,此时应该如何操作呢?这个场景最常见于从一个文件(比如json、npz之类的文件)中读取字…

    Python 2023年6月9日
    060
  • 【Python】Flask + MySQL 实现用户注册,登录和登出

    今天用Flask + MySQL 实现用户注册,登录和登出。 一、实战场景 Flask 框架实现用户的注册,登录和登出。 二、主要知识点 flask_login 插件使用 SQLA…

    Python 2023年11月2日
    044
  • 【Python爬虫】论坛发图辅助脚本

    因为论坛发帖手动插入链接太费时间,所以我自己用Python爬虫写了一个小脚本,用来自动上传图片到图床,然后返回链接,我们只需直接复制链接就可以啦 因为不同图床需要提交的POST表单…

    Python 2023年11月2日
    032
  • HMS Core 6.8.0版本发布公告

    分析服务 ◆ 游戏行业新增”区服分析”埋点模板及分析报告,支持开发者分服务器查看用户付费、留存等指标,可进一步评估不同服务器的玩家质量; ◆ 新增营销活动报…

    Python 2023年10月13日
    026
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球