模块是模块化编程的要求。 一个模块一般可以包括多个文件。也可以一个文件。通常是一个。
而包是一个可以完整测试的,独立发布的模块组合。通常发布在python指定的目录里。
当你多个项目使用同一组模块时,可以将模块封装成包,发布到公共目录里。这就是包的意义。
引入路径:
import sys
sys.path.append(yourmodulepath)
将路径加入到python系统路径下,避免每次通过代码指定路径:
export PYTHONPATH=$PYTHONPATH:yourmodulepath
import module #✅ 引入模块,
使用时加模块名限制 简化引入,繁化使用
from module import function #✅
使用时不加模块名限制引入模块,
import module.function1 #❌
import package1 #✅ 引入包,使用包中类时需要加模块名的限制
from package1 import module #✅ 引入包里的类,使用时无需加模块名的限制
from package1.package2 import module
#✅
模块:在Python可理解为对应于一个文件。在创建了一个脚本文件后,定义了某些函数和变量。你在其他需要这些功能的文件中,导入这模块,就可重用这些函数和变量。
sys.path.append()或insert()增加新的目录。
模块第一次被导入时被执行
一般用module_name.fun_name,和module_name.var_name进行使用。
包:为了组织好模块,将某些功能相近的文件组织在同一文件夹下,将多个模块分为一个包。包是python模块文件所在的目录,且该目录下必须存在
__init__.py
文件。
路径引入;
文件路径下还需要__init__.py文件,可为空可有代码;
导入包: 1:import a.b.mod .对应系统目录/;需要经常输入路径;需要读取两个及以上路径内的同名文件时使用
2.from a.b.mod import x 尽量使用这种相对或绝对导入包的子模块;多次使用只需导入一次因而修改方便;
需要读取的文件名称在每个路径都不相同时使用
注意事项:
- 自定义 使用
if __name__ == '__main__'
,保证你写包既可以import又可以独立运行。 - 多次import不会多次执行模块,只会在首次导入执行。可以
使用
过程中reload
来强制运行模块。