1.模块
- 一个模块的就是包含Python代码的文件
- 为什么用模块
- 程序太大,编写维护不方便,需要拆分
- 模块可以增加代码重复利用的方式
- 当做命名空间使用,避免命名冲突
- 如何定义模块
- 模块就是普通文件,任何代码可以直接书写
- 根据书写规范,最好在模块中编写一下内容
- 函数(单一功能)
- 类(相似功能的组合,或者类似业务模块)
- 测试代码
- 如何使用模块
-
模块直接导入
- 加入模块名称直接以数字开头,需要借助importlib帮助
-
语法
import module_name module_name.function_name module_name.calss_name
or
import module_name as 别名 别名.function_name 别名.calss_name
# 有选择性导入 # 使用时可以直接使用导入的内容,不需要前缀 from module_name import func_name, class_name
-
if __name__ == ""__main__"
的使用- 可以有效的避免模块代码被导入的时候被动执行的问题
- 建议所有程序都已此代码为入口
-
2.模块的搜索路径和存储
- 什么是模块的搜索路径
- 加载模块的时候,系统会在哪些地方寻找此模块
- 系统默认的模块搜索路径
import sys sys.path # 该属性可以获取路径列表
-
添加搜索路径
sys.path.append(dir)
包
- 包是一种组织管理代码的方式,包里面存放的是模块
- 用于将模块包含在一起的文件夹就是包
- 自定义包的结构
/---包
/---/---init.py 包的标志文件
/---/---模块1
/---/---模块2
/---/---子包(子文件夹)
/---/---/---init.py
/---/---/---子包模块1
/---/---/---子包模块2
- 包的导入操作
-
import package_name
- 直接导入一个包,可以使用init.py中的内容
- 使用方式
package_name.func_name() package_name.class_name.func_name()
- 此种方式的访问内容是
- 案例pkg01, P05.py
-
import package_name as p
- 此种方式是默认对init.py内容的导入
-
import package.module
- 导入包中某一个具体的模块
package.module.func_name() package.module.class.func() package.module.class.var()
-
import package_name.module as pm
-
from package import module1, module2
- 此种导入方法不执行init.py
-
网友评论