模块
- 一个包含python代码的.py文件。
- 模块的使用
- import module
- import module_name
- import module_name as 别名
- from module_name import func_name, class_name
- from module_name import *
- if __name == 'main' 的使用
- 可以有效避免模块代码被导入的时候被动执行的问题
- 建议所有程序的入口都以此代码为入口
模块的搜索路径和存储
- 系统默认的模块搜索路径
- import sys
- sys.path 属性可以获取路径列表
- 添加搜索路径
- sys.path.append(dir)
- 模块的加载顺序
- 搜索内存中已经加载好的模块
- 搜索python的内置模块
- 搜索sys.path路径
包
-
自定义包的结构
/---包 /---/---__init.py__ 包的标志文件 /---/---模块1 /---/---模块2 /---/---子包(子文件夹) /---/---/---__init.py__ 包的标志文件 /---/---/---子包模块1 /---/---/---子包模块1
- 包的使用
- import package_name
- 默认对__init__.py中的内容进行导入
- from package_name import *
- 导入__init__.py中的模块,函数和类
- import package_name.module_name
- from package_name import module1, module2, ...
- import package_name
__init__.py中如果设置了__all__的值,那么则按照__all__指定的子包或者模块进行导入
__all__ = ['module1', 'module2',..]
关于包和模块的使用,根据import后面的内容。
- import的是package,使用时: package_name.module_name
- import的是module,使用时: module_name.func_name; module_name.class_name
- import的是package.module, 使用时: package_name.module_name.func_name
- import的是func, class,使用时:func_name; class_name