模块是最高级别的程序组织单元,它将程序代码和数据封装起来以便重用。
每个py文件是一个模块,导入模块就可以使用其内部的变量。
模块的优点:
1.代码重用
2.对象命名空间的划分,对象包含方法/属性/变量
3.实现共享服务和数据,如使用单例模式/配置文件
使用import导入模块时,执行了以下三步:
1.找到模块文件
2.编译成位码(如果需要)
3.执行模块中的代码,以创建其定义的对象
注:以上三步仅在程序第一次启动时加载,如果是第二次执行,仅提取内存中已加载的模块对象。
执行编译时,python会检查文件的时间戳,如果字节码(.pyc文件)比源代码(.py文件)旧,程序运行时就会重新编译。
python模块搜索路径:
1.程序的主目录
当运行一个程序时,这个入口是包含程序的顶层脚本文件的目录
当在交互模式运行时,这个入口是进入交互模式的当前目录
注意:因为程序主目录是最先加载,应避免自己写的模块名与标准模块名相同
2.python path目录(如果已经进行了设置)
3.标准链接库目录
4.任何.pth文件的内容(如果存在的话)