python程序组成

电子说

1.3w人已加入

描述

python模块对应python程序文件,每个python文件都是一个模块。

模块a.py导入模块b.py后,在a.py可以使用使用b.py的全部变量。

1.1 python程序组成

python程序通常包括顶层主体文件、模块文件、标准库文件。

顶层主体文件通常是程序运行入口,会导入模块文件,模块文件导入标准库文件。

编程语言

如上图,main.py为顶层主体文件,程序从此文件开始运行。

main文件导入mod1.py模块文件,使用里面的模块属性。

mod1.py模块文件导入mod2.py和标准库模块文件。

标准库模块文件为python自带模块文件。

1.2 python导入模块

python导入模块在程序运行时执行。

python首次导入模块,会执行三个步骤:

步骤 步骤名称 步骤描述
1 搜索 通过模块搜索路径找到模块文件
2 按需编译 首次导入需要编译,生成.pyc文件。若.pyc文件时间戳小于.py文件,则进行编译。只有.pyc则直接加载,不进行编译。
3 运行 从上到下执行模块代码,创建模块定义的对象。

python将导入的模块存储到sys.modules字典中,

每次导入模块时检查sys.modules是否存要导入的模块,

若存在,则不再导入(跳过首次导入模块的3个步骤),直接从内存获取模块,

若不存在,则执行首次导入模块的3个步骤。

注:导入模块后,模块文件被更新,通过reload导入最新模块文件。

1.3 python模块搜索路径

python通过模块搜索路径找到模块文件进行导入。

按下面顺序搜索模块搜索路径,这4个路径组成sys.path:

顺序 路径
1 程序主目录
2 PYTHONPATH目录(若有),用于路径拓展
3 标准库目录
4 .pth文件(若有),用于路径拓展

1.4 python模块路径sys.path

python的模块搜索路径保存在sys.path列表。

手动添加到sys.path列表的路径,在程序结束后,将不会再生性。

1.5 python模块避免重名

模块搜索路径存在重名模块时,导入的模块存在不确定性,所以pthon模块应该避免重名。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分