python的运行过程剖析·编程语言分类
总结:
- 编程语言的分类
- 编译型:
- 说明:与汇编语言类似,都有一个编译程序将源代码编译成硬件可执行的二进制代码
- 特点:执行速度快、同等情况下对系统要求低,适合于开发大型应用程序、数据库系统、操作系统等
- 代表:C/C++、VB
- 解释型:
- 说明:有个解释程序外壳,对源代码进行不停的编译和解释,省略了“编译”环节,修改调试方便
- 特点:修改源代码比较方便,可移植性强,但是运行速度相比较而言就慢了一点,适合于开发网页脚本、服务器脚本以及辅助开发接口等对速度要求不高,且对不同系统之间的兼容性有要求的程序。
- 代表:Python、Shell、JavaScript、VBScript、java、perl
- 强类型:
- 说明:强制定义数据类型的语言,不予许隐式转换(不同类型之间的比较时,会自动转换变量的数据类型的一种过程)
- 代表:Python、shell、java
- 弱类型:
- 说明:数据类型可以被忽略的语言,允许隐式转换
- 代表:JavaScript、VBScript
- 动态型:
- 说明:在程序执行过程中检查数据类型的语言
- 代表:Python、Shell、Ruby,JavaScript
- 静态型:
- 说明:在编译期间进行数据检查,且写程序时必须声明所有的变量
- 代表:java、C
- 编译型:
- python的运行过程剖析
- 主module文件模块入口
- Python会把py结尾的文件视为module,我们可以在代码中定义或者调用模块,运行Python的时候,这些module中,有一个主module,也就是程序运行的入口
- 编译
- 在启动Python解释器后,xx.py文件会被编译成一个字节码对象PyCodeObject 其实就和java的class对象一样,有人会好奇编译过后不是生成pyc文件吗?这里解释一下,在Python的世界里一切皆对象,函数是对象,类型是对象,类也是对象,甚至编译出来的字节码对象也是对象,而pyc文件只是PyCodeObject在硬盘上的表现形式
- pyc文件
- 内存中的字节码对象PyCodeObject在文件运行完成后,会写入到对应xx.pyc文件中去,目的为了让第二次访问该xx.py的时候不用再次进程编译,直接调用pyc文件,当然,Python会事先判断源文件与pyc文件修改日期的最新程度,来确定是否直接调用还是重新编译。
- 主module文件模块入口
python的运行过程剖析·编程语言分类的更多相关文章
- Python:Python的运行过程
1.Python是什么 和Java以及c#一样,Python也是一门基于虚拟机的语言.熟悉Java开发的人在命令行执行一个Java程序的过程通常如下: javac hello.java java he ...
- 一个Flask应用运行过程剖析
相信很多初学Flask的同学(包括我自己),在阅读官方文档或者Flask的学习资料时,对于它的认识是从以下的一段代码开始的: from flask import Flask app = Flask(_ ...
- Python之编程基础(编程语言分类)
一.编程语言简介 编程语言主要从以下几个角度进行分类,编译型和解释型.静态语言和动态语言.强类型定义语言和弱类型定义语言. 1.编译型跟解释型 编译型,其实他和汇编语言是一样的,也是有一个负责翻译的程 ...
- Python基础:一、编程语言分类
编程语言主要从以下几个角度进行分类: 编译型和解释型 静态语言和动态语言 强类型语言和弱类型语言 编译型语言和解释型语言 编译和解释的区别是什么? 编译器是把源程序的每一条语句都编译成机器语言,并保存 ...
- 批量执行用例,且结果显示在html中,python控制台也会显示运行过程
下载HTMLTestRunner.py放到python安装目录的Lib下: 如下以登录为例,创建不同的.py文件, ========================================== ...
- .pyc是个什么 python的执行过程
1. Python是一门解释型语言? 我初学Python时,听到的关于Python的第一句话就是,Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存在.如果是解释型语言, ...
- 编程语言分类及python所属类型
编程语言分类及python所属类型 编程语言主要从以下几个角度为进行分类:编译型和解释型.静态语言和动态语言.强类型定义语言和弱类型定义语言. 编译和解释的区别是什么? 编译器是把源程序的每一条语句都 ...
- 老李推荐:第8章5节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-运行测试脚本
老李推荐:第8章5节<MonkeyRunner源码剖析>MonkeyRunner启动运行过程-运行测试脚本 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化 ...
- python学习day3 编程语言分类 变量 格式化输出
1.编程语言分类 机器语言:直接使用二进制指令直接编写程序,直接操作计算机硬件,必须考虑硬件细节 汇编语言:使用英文标签代替二进制指令去编写程序,直接操作计算机硬件,必须考虑硬件细节对,不过相比机器语 ...
随机推荐
- 显示器分辨率不同,部分winform控件在其他机器上显示不全
在开发机器上效果如下: 而到其他电脑上效果如下: 解决办法: 将窗体的AutoScaleMode属性设置为None,尝试一下,应该可以了. 关于AutoScaleMode的属性,可以参考 http:/ ...
- ssh无法连接到虚拟机linux系统
一般ssh连不上虚拟机是防火墙没有放行22端口,用如下命令:(安装ssh服务时应该是放行了22端口的,如果没有则需手动放行22端口) 放行22端口: sudo iptables -I INPUT ...
- JavaScript比较和逻辑运算符
JavaScript比较和逻辑运算符 JavaScript比较和逻辑运算符 比较和逻辑运算符用于测试true或者false. 比较运算符 比较运算符在逻辑语句中使用,以测定变量或值是否相等 例如设定x ...
- css随堂笔记(二)
css sub注释 注释不能嵌套 sub生成结构代码快捷 复合选择器 1.后代选择器 语法:选择器1 选择器2 选择器3 { 属性名:属性值 } 2.子代选择器 子代选择器语法: 选择器1> ...
- Java笔记 —— 初始化
Java笔记 -- 初始化 h2{ color: #4ABCDE; } a{ text-decoration: none !important; } a:hover{ color: red !impo ...
- input,button制作按钮IE6,IE7点击时1px黑边框的解决方法
按钮在IE6中点击时1px黑边框的最常见的解决方法 首先设置按钮为none,然后在按钮外面套一层来实现边框的效果,部分代码如下 .btnbox{ border:solid 1px red;} .btn ...
- 一个TCP的问题,所谓TCP面向连接的虚电路到底是怎么实现的?
http://www.cskaoyan.com/thread-23715-1-1.html 今天我又查阅了一些资料,发觉一个问题,TCP所谓的面向连接的特性以及建立虚电路,与网络层虚电路服务好像有着本 ...
- Spring boot 自动配置自定义配置文件
示例如下: 1. 新建 Maven 项目 properties 2. pom.xml <project xmlns="http://maven.apache.org/POM/4 ...
- 第50章 读写内部FLASH—零死角玩转STM32-F429系列
第50章 读写内部FLASH 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fire ...
- mybatis-generator的maven插件使用异常(mybatis-generator-maven-plugin):generate failed: Exception getting JDBC Driver
使用mybatis的代码生成工具:mybatis-generator,在父model中引入了maven插件的依赖,如下: <!-- Mybatis.generator插件 --> < ...