python3精要(34)-import工作原理
1、import导入模块,不是将一个文件插入到另一个文件中,它额外做了以下三方面工作:
(1)搜索找到模块文件
使用标准模块搜索路径找到该模块文件,并没有指定文件所在路径,可以是以点号分隔的相对路径名。
(2)编译成字节码(需要时)
检查模块文件的时间戳,如果比字节码pyc时间晚,说明模块文件已经修改,则重新编译成字节码。如果‘没有发现模块文件的源文件,只有pyc,则跳过源文件,不编译。
(3)执行模块代码
这3方面工作只会在第一次导入时进行。
模块文件的所有代码得到运行。
2、python将导入的模块存储在sys.modules字典中,并在第一次导入操作时检查该表,如果已经导入,在字典中将找到,于是不会执行1中讲述的3个工作。
3、python的模块搜索路径4部分:
(1)程序的主目录
运行的程序顶层脚本文件所在路径。
(2)PYTHONPATH路径
环境变量
(3)标准链接库目录
python默认存放标准库的路径
c:\python\lib\sitepackages
/usr/local/lib/site-python
(4)任何.pth文件内容
一个文本文件,每行一个路径
放在python安装目录或python标准库路径
以上4部分组成了sys.path一个python内置列表变量
python3精要(34)-import工作原理相关推荐
- 1.34.FlinkX\工作原理\快速起步|1.35.Flink资料
1.34.FlinkX 1.34.1.什么是FlinkX 1.34.2.工作原理 1.34.3.快速起步 1.34.3.1.运行模式 1.34.3.2.执行环境 1.34.3.3.打包 1.34.3. ...
- 神经网络原理与实例精解,神经网络计算工作原理
神经网络算法原理 4.2.1概述人工神经网络的研究与计算机的研究几乎是同步发展的. 1943年心理学家McCulloch和数学家Pitts合作提出了形式神经元的数学模型,20世纪50年代末,Rosen ...
- JVM 垃圾回收器工作原理及使用实例介绍
2019独角兽企业重金招聘Python工程师标准>>> 垃圾收集基础 Java 语言的一大特点就是可以进行自动垃圾回收处理,而无需开发人员过于关注系统资源,例如内存资源的释放情况.自 ...
- websocket工作原理
websocket工作原理 websocket是什么? websocket是一套类似于http的协议. 扩展: http协议:\r\n分割.请求头和请求体\r\n分割.无状态.短连接. {'GATEW ...
- struts2的核心和工作原理
在学习struts2之前,首先我们要明白使用struts2的目的是什么?它能给我们带来什么样的好处? 设计目标 Struts设计的第一目标就是使MVC模式应用于web程序设计.在这儿MVC模式的好处就 ...
- 详解HashMap的内部工作原理
本文将用一个简单的例子来解释下HashMap内部的工作原理.首先我们从一个例子开始,而不仅仅是从理论上,这样,有助于更好地理解,然后,我们来看下get和put到底是怎样工作的. 我们来看个非常简单的例 ...
- Struts自定义拦截器拦截器工作原理
0.拦截器的调用原理: 拦截器是一个继承了序列化接口的普通接口.其工作原理是讲需要被拦截的对象作为参数传到intercept()方法内,在方法内部对此对象进行处理之后再执行原方法.intercept( ...
- Hadoop 之 MapReduce 的工作原理及其倒排索引的建立
一.Hadoop 简介 下面先从一张图理解MapReduce得整个工作原理 下面对上面出现的一些名词进行介绍 ResourceManager:是YARN资源控制框架的中心模块,负责集群中所有的资源的统 ...
- [转]Sandboxie 的工作原理
Sandboxie 的工作原理 术语解释 Sandboxie 4.x 工作原理的一个示意图 hx1997 解说 Sandboxie 4.x 的工作原理 Sandboxie 3.x 的工作原理 术语解释 ...
最新文章
- 计组-CISC/RISC小节
- bilstm+crf中文分词_基于LSTM的中文分词模型
- 怎么检查计算机网络是连接,怎么检测网络打印机是否与电脑连接成功【检测方法】...
- [JavaScript]使用document.createDocumentFragment优化性能
- java websocket下载_java-websocket.jar免费版
- PyCharm5.0.2最新版破解注册激活码
- html映射共享文件夹,怎么在DOS下映射共享文件夹为本地磁盘
- 等价于什么_从来就没有什么等价交换
- Git提交空文件夹的技巧
- linux脚本彩色提示,在shell脚本里显示带颜色的字(linux)
- python热力相关系数图_【Python可视化6】Seaborn之heatmap热力图
- 计算机专业学校课程改革,中专学校计算机专业课程改革初探
- intel和ATT汇编格式区别
- 最长不含重复字符的子字符串(C++)
- Maven之(九)依赖关系
- c++——ignore()函数
- 新手建站免费空间及其使用体验
- vep加密视频破解转换为mp4教程
- pytest之命名规则和运行方式
- android实现手机端控制电脑PPT播放的APP(一)