博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python导入模块时的执行顺序
阅读量:6167 次
发布时间:2019-06-21

本文共 661 字,大约阅读时间需要 2 分钟。

当python导入模块,执行import语句时,到底进行了什么操作?按照python的文档,她执行了如下的操作:

第一步,创建一个新的module对象(它可能包含多个module)

第二步,把这个module对象插到sys.module中

第三步,装载module的代码(如果需要,则必须先编译)

第四步,执行新的module中对应的代码。

在执行第三步时,首先需要找到module程序所在的位置,搜索的顺序是:

当前路径(以及从当前目录指定的sys.path),pythonpath,然后是python安装时设置的相关默认路径。正因为存在这样的顺序,所以如果当前路径或pythonpath中存在与标准module相同的module,则会覆盖标准module。也就是如果当前目录下存在xml.py,那么执行import xml时,导入的是当前目录下的module,而不是系统标准的xml。所以我们平常起名字时不能乱起。

了解这些之后,我们就可以先构建一个package,以普通module的方式导入,这样就可以直接访问此package中的各个module。python2中package必须包含一个__init__.py的文件。拥有这个文件使得python解释器将子目录整个也当成一个模块,然后直接通过“import 子目录.模块”导入即可。如果没有这个文件就会被当成一个普通文件夹,而不是模块。

转载于:https://www.cnblogs.com/pachongshangdexuebi/p/5539200.html

你可能感兴趣的文章
TypeScript基础学习
查看>>
读安晓辉老师的访谈有感
查看>>
jQuery 的选择器
查看>>
书籍列表
查看>>
scrollview 例子2
查看>>
20165211 2017-2018-2 《Java程序设计》课程总结
查看>>
C# 截取字符串某个字符分割的最后一部分
查看>>
css2选择器
查看>>
Selenium Chrome浏览器的启动以及proxy设置
查看>>
uCOS-II+LwIP+DM9000(源代码)
查看>>
BZOJ3172:[TJOI2013]单词——题解
查看>>
洛谷4643:【模板】动态dp——题解
查看>>
python三大神器之virtualenv pip, virtualenv, fabric通称为pythoner的三大神器。
查看>>
MPMoviePlayerController播放视频
查看>>
java批量解压文件夹下的所有压缩文件(.rar、.zip、.gz、.tar.gz)
查看>>
[转] Transformer
查看>>
回溯法--装载问题
查看>>
HTML中的GroupBox
查看>>
Python入门-----Windows安装
查看>>
【java】TreeMap/HashMap的循环迭代中 keySet和entrySet和forEach方式 + map的几种迭代方式...
查看>>