绝对导入与相对导入 包的概念 编程思维的转变 软件开发目录规范 常见内置模块
昨日内容概要
- 索引取值与迭代取值的差异
- 模块简介
- 导入模块的两种句式
- 导入模块的补充知识
- 循环导入问题
- 模块的查找顺序
今日内容详细
绝对导入与相对导入
所有涉及模块的导入sys.path都参照执行文件为准
绝对导入(推荐使用)
# 在pycharm环境下
# 以当前执行文件所在的sys.path为起始路径导入模块
from ccc import b
from ccc.ddd.eee import b
# 若不在pycharm环境下运行 则需要将项目根目录添加至sys.path 也可以借助os模块
相对导入(module only)
只能在模块文件中使用 不能在执行文件中使用
当项目比较复杂的时候 相对导入比较容易出错
def index():
from . import b #当前模块路径
from .. import b #当前模块的上层路径
from ../.. import b #当前模块的上上层路径
# 相对导入不参考执行文件所在的路径 以当前模块文件路径为准
包的概念
什么是包
一个含有__init__.py文件的文件夹就是包
为什么有包
为更高效的管理py文件(模块文件)
如何使用
1.创建python package
2.内部放有多个同类型的模块
3. import python package # 导入的是包内的__init__.py文件
4. 在__init__.py文件内用相对导入的方式导入包内的模块
#通过__init__.py提前准备好模块,方便执行文件导入
在python2中文件夹内必须要有__init__.py文件才会识别为包
而python3中没有严格要求