【Python】CPython解释器及字节码
看了set和dict,看到了字节码和dis模块,看了字节码又不能不看python解释器,很多东西都是相互关联想通。看了一篇文章https://www.cnblogs.com/nelsen-chen/p/9122629.html,后面要自己整理出逻辑来。
python作为解释性语言,相对于编译性语言的特点为,是一种边解释边运行的语言,而编译性语言需要完全编译后才可以运行。部分语言的改动都要从新编译,因此可脱离编译环境运行。解释性语言的特点,部分改动不需要整体编译,但离不开解释器。
解释性语言与编译性语言的本质性特征是,程序执行时是在实际的计算机上进行,还是在软件虚拟机上进行执行。python解释器(或者称其为python虚拟机?)在这其中充当的角色为,将源代码变成字节码pyc, python解释器并执行这些代码。
关于python的运行过程:
前面说到python需要边解释变运行,如果每次运行都要从头进行解释,将会进行大量重复性的工作。Python通过引入pyc文件来减少重复性解释工作。也就是将py文件的解释结果存放在pyc文件之中。关于pyc文件需要明确的几点:
1、当前调用的主程序不会生成pyc
2、只会import进来的模块生成pyc文件
3、每次使用pyc文件时,都会对其创建时间和其源模块进行对比,若源模块发生了修改则进行从新生成pyc
【Python】CPython解释器及字节码相关推荐
- Python的解释器和字节码
首先我们先规定Python解释器指的是 CPython解释器. 1.py文件和pyc文件的区别是什么?为什么Python的解释这两个文件都能运行? CPython虚拟机既可以执行python文件,又可 ...
- 【Python】浅谈 字节码 + 虚拟机 (Python 解释器)
目录 一.绪论 二.说明 2.1 字节码编译 2.2 Python 虚拟机 (PVM) 2.3 性能意义 ☆ 2.4 开发意义 三.小结 一.绪论 Python 通常被描述为一种 解释型语言,在这类语 ...
- python语言是机器语言_Python解释器:源代码--字节码--机器语言
"一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1).这个过程通过编译器和不同的标记.选项完成.当你运行你的程序的时 ...
- python 字节码 汇编器_基础系列1-python解释器、PVM、源代码、字节码理解
大家都会听到这么一种说法,python是脚本语言,一门解释型语言,那么什么是解释型语言呢? 为了回答这个问题,我们从头撸起 语言又大致分为3类:机器语言.汇编语言.高级语言,简单的解释来说: 机器语言 ...
- Python字节码介绍
了解 Python 字节码是什么,Python 如何使用它来执行你的代码,以及知道它是如何帮到你的. 如果你曾经编写过 Python,或者只是使用过 Python,你或许经常会看到 Python 源代 ...
- python字节码大全
ddis --- Python 字节码反汇编器 Source code: Lib/dis.py dis 模块通过反汇编支持CPython的 bytecode 分析.该模块作为输入的 CPython 字 ...
- python字节码转换_python字节码(转)
了解 Python 字节码是什么,Python 如何使用它来执行你的代码,以及知道它是如何帮到你的. 如果你曾经编写过 Python,或者只是使用过 Python,你或许经常会看到 Python 源代 ...
- 深入理解 python 虚拟机:令人拍案叫绝的字节码设计
深入理解 python 虚拟机:令人拍案叫绝的字节码设计 在本篇文章当中主要给大家介绍 cpython 虚拟机对于字节码的设计以及在调试过程当中一个比较重要的字段 co_lnotab 的设计原理! p ...
- 初探Python字节码和dis模块
本文主要介绍 Python 字节码.Python 虚拟机内幕以及 dis 模块的简单应用.阅读本文预计 10 min. 初探Python字节码和dis模块 1. 前言 2. Python 字节码 2. ...
最新文章
- 如何实现iframe(嵌入式帧)的自适应高度
- 找到那些新时代的“操作系统”
- 香港计算机本科专业,中国香港计算机本科专业包含哪些呢?
- 边工作边刷题:70天一遍leetcode: day 33-3
- TCP/IP协议族(一) HTTP简介、请求方法与响应状态码
- STM32 基础系列教程 5 – 系统定时器
- 安阳工学院计算机二级成绩查询,2008年下半年计算机等级考试成绩可以查询了?...
- Python自动化办公之Excel拆分并自动发邮件
- 百度顶会论文复现(2):GAN综述
- vue 鼠标点击事件_VBA代码解决方案第115讲:点击鼠标实现精准控制触发事件的VBA代码第二方案...
- mysql挂载数据卷_记一次生产数据库数据文件进行分区转移
- 计算机职业学校杭州,杭州2021年计算机学校是干什么的
- 计算机科学与技术专业导论_“课程思政”建设经验分享 | 王振武:专业导论(计算机科学与技术)...
- k8s token 过期了怎么加入worker 节点
- VS2013好用的插件
- IT行业的工作内容是什么?
- HTTP代理模式学习
- 道可道,非常道;名可名,非常名
- kali linux无线驱动安装,Kali Linux 安装WIFI无线网卡驱动:rtl8822bu 教程
- 算法分析----基础知识点