虚拟机工作前:

python 在运行.py 文件的时候,先进行编译字节码的形式来进行存在,字节码的存在是为了优化速度。

字节码的更改是通过时间戳来进行。字节码发送的python 虚拟机之中,虚拟机是python解释器的最后一部分

什么是字节码?

字节码就是为了提高速度,比如减少模块加载的时间。

虚拟机的具体工作:

虚拟机的工作就是翻译的工作,字节码就是为了优化速度!那字节码是不是就是机能识别的代码?答案是不是的,解释器还是需要再次经过程序来翻译的,这也是解释语言的性能差的原因之一。

那我们学python有什么用?

python解释器起到了中间"翻译官"的功能,我们不需要了解机器底层是如何识别的,只需要关心如何让解释器来识别?是不是有点绕?简而言之,我们可以随意去写我们的代码,不需要关心底层就可以了。

那么解释器如何理解我们的代码呢?也就是类与对象呢?

实际上在python 之中类也是对象,甚至连函数都是对象!都是演绎好的,都他妈的是假的!!!!什么静态方法,什么动态方法,都是python的语法糖,都是解释器提前搭好的“台子”。一种模拟面向对象(不过这点你不用担心,我们还是可以使用,毕竟封装多态继承还是有的!!)

实际上在python好了现在总结一下吧!!首先我们创建一个类,解释器也就会创建一个对象(类对象)。按照类对象的功能取划分命名空间!然后我们创建实例对象(实际上是类创建的)。最后运行我们的程序,编译成字节码,最后按照行来执行。

python 编译过程!

1,python 在初始化环境的时候会预先加载一批内建模块到内存,当我们导入模块的时候解释器会在其中搜索是否有模块,如果存在就会导入到当前的命名空间,并且加载。

2,如果找不到就会为模块创建一个字典对对象,将信息放置内存之中,加载前确认是否对文件编译,如果需要那么就会先编译。

3,执行动态加载,加载的是编译后的字节码。将所有的对象模块放置相应的字典之中。

4,导入模块时候放置命名空间的冲突。先编译,会将自己文件的函数,或者变量覆盖掉

python通过解释器来编译_python 解释器与编译过程,代码的搬运工相关推荐

  1. python解释器怎么添加_Python解释器的配置

    1.准备工作 安装好Pycharm2017版本 电脑上安装好Python解释器 2.本地解释器配置 配置本地解释器的步骤相对简洁直观: (1)单击工具栏中的设置按钮. (2)在Settings/Pre ...

  2. python批量处理csv_Python批量处理csv并保存过程代码解析

    本篇文章小编给大家分享一下Python批量处理csv并保存过程代码解析,代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 需求: 1.大量csv文件,以数字命 ...

  3. python解释器安装步骤_Python 解释器

    Python 解释器 Linux/Unix的系统上,Python解释器通常被安装在 /usr/local/bin/python3.4 这样的有效路径(目录)里. 我们可以将路径 /usr/local/ ...

  4. python解释器提示符为_Python 解释器的提示符为( )_学小易找答案

    [单选题]采用SWOT分析方法对企业内外部环境进行综合分析.其中,S表示( ). [填空题]油气及其蒸气具有毒性表现在( ).( ).( ). (5.0分) [单选题]多年不见的朋友,在自己的脑海中, ...

  5. python解释器工作原理_Python解释器执行原理

    Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码), 然后再由Python Virtual Machine(Python虚拟机)来执行这些编译好的byt ...

  6. python2.7解释器安装教程_Python解释器安装教程以及环境变量配置

    Python解释器安装 1.打开Python官网 www.python.org 2. 鼠标放在 Downloads 上,并选择相对应的系统 3.寻找你想要的版本,以3.7.3版本为例 3.1 64位系 ...

  7. python堆堆乐教程_python堆排序,详细过程图和讲解,这样做小白都会

    ### 正文前的扯淡 之前电话面试一个公司时,面试官让写一个堆排序,遗憾的是我忘了堆排序的思想了,所以直接说不会写,这次电面也以失败告终...知耻后勇,这几天在网上找了很多写堆排序的帖子,但是帖子质量 ...

  8. python 首次登陆outlook 脚本_Python 黑魔法,执行任意代码都会自动念上一段 平安经...

    最近的"平安经"可谓是引起了不小的风波啊. 作为一个正儿八经的程序员,最害怕的就是自己的代码上线出现各种各样的 BUG. 为此,明哥今天分享一个 Python 的黑魔法,教你如何在 ...

  9. python中scale的用法_Python Decimal scaleb()用法及代码示例

    Decimal#scaleb():scaleb()是一个Decimal类方法,该方法将第二个值与其exp相加后返回第一个操作数. 用法:Decimal.scaleb() 参数:十进制值 返回:将第二个 ...

最新文章

  1. 借助axios的拦截器实现Vue.js中登陆状态校验的思路
  2. HDU1020 Encoding
  3. python导出csv不带引号的句子_不带双引号写入CSV文件
  4. php自定义中文分词方法,PHPAnalysis中文分词类详解
  5. 前端学习(3054):vue+element今日头条管理-状态展示处理
  6. linux安装nord,卸载nord源
  7. 私有静态成员变量,在多线程环境,别的线程会修改当前线程的变量值
  8. 不如安卓?iPhone 12 5G 速度上演“滑铁卢”
  9. Visual Studio 2010 (ASP.Net 4.0)新功能一览(转载)
  10. UnityWebPlayer缓存清理工具
  11. es like模糊匹配_Elastic search模糊匹配,精确匹配显示在前
  12. 数据结构导论 — (自考)
  13. 一分钟了解业务流程图与功能流程图的区别
  14. 给予Java初学者的学习路线建议
  15. 虚幻C++入门个人笔记(3)——接口、智能指针、动画蓝图、行为树、EQS系统
  16. nodejs-CentOS64下载安装配置
  17. 希尔顿与锦江集团续签合作协议,将在华开逾600家希尔顿欢朋酒店
  18. 小布助手在面向中文短文本的实体链指比赛中的实践应用
  19. 与传统招聘方式相比,小程序招聘都有哪些优势?
  20. cassandra 重启失败,nullpoint exception

热门文章

  1. span标签的取值与赋值
  2. python是如何引起的_1.2.8 如何开始使用python
  3. oracle存储过程转mysql存储过程修改方法
  4. 动力电池溯源追溯系统_来溯有源的区块链溯源系统、追溯系统为什么做的好?值得推荐!...
  5. php observer,php设计模式 Observer (观察者模式)
  6. BigDecimal用法介绍
  7. Java 使用Collections.reverse对list集合进行降序排序
  8. geotools绘制椭圆API
  9. mysqldump导出insert带字段
  10. oracle中创建表的自增ID