show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- 上次进入系统类库的位置
- /usr/lib/python3.8
- 编写我们自己的oeasy.py
- 这个文件就是一个模块
- 这个模块可以在游乐场和py文件中被导入(import)
- 导入后模块执行主程序
- 也可以建立一个文件夹
- 在文件夹中建立
__main__.py
- 这样文件夹就是一个模块
- 导入的时候执行
__main__.py
- 那么这个文件夹可以嵌套么?
- 做成一层层的那种嵌套软件包(package)的形式?
- 在文件夹中建立
- 用tree命令观察类库结构
- 确实存在这种层层嵌套的文件夹
- 这方面的帮助在哪呢?
- sound下面可以有三个子模块
- formats
- effects
- filters
- 模块文件夹下面必须得有一个
__init__.py
__init__.py
文件用来初始化(initialization)文件夹- 文件夹成为成为一个软件包(package)
- init是什么意思呢?
- initialize 头文字大写
- 目前也泛指开始入口
- 把系统恢复到最初的状态
- 进入最初状态之后就需要初始化
- 目前也泛指各种模块和空间
- 初始化数组
- 初始化对象
- 初始化磁盘空间
- 初始化某个模块
- 我们这个package怎么初始化?
- 建立这样的文件结构
- 可以运行吗?
- 确实是可以运行的
- 顺序是
- 先初始化(initialize)org
- 再初始化(initialize)org.oeasy
- 最后运行org.oeasy.oeasy_module
- 把相关的
__init__.py
编译成了pyc文件 - 加载到python虚拟机当中
- 依次执行的
- 如何从汇编角度理解呢?
- 分别编译
__init__.py
完成初始化的工作
- 可以在游乐场运行么?
- 可以的
- 如果我的oeasy_module不是一个py文件
- 而是一个文件夹可以么?
- 导入包(package)的时候会先执行
__init__.py
- 一层层从上向下执行
- 直行到新的模块文件夹的时候
- 也是先执行模块文件夹下的
__init__.py
初始化这个module - 然后运行模块文件夹下的
__main__.py
作为主程序
- 在游乐场什么情况呢?
- 游乐场中也是依次导入包(package)
- 依次执行
__init__.py
- 究竟应该如何理解package呢?
- package就是把东西打到bag里面
- 荷兰语也叫做baggage
- 在软件领域如何理解呢?
- 把软件分门别类
- 放到一个个文件夹中
- 就是打包
- 每个包都得初始化(initialize)
- 告诉python这个一个包(package)
- 包里面可以有包
- 可以嵌套多层
- 我们这次了解了包(package)
- 一个文件夹初始化(initial)了之后就是一个包(package)
- 包(package)里面可以有更细化的包
- 模块(module)
- 可以是一个py文件
- 也可以是一个包
- 包一定要有初始化
__init__.py
- 导入包的时候
- 依次执行
__init__.py
- 依次执行
- 包和模块复杂了之后没有文档就很无从下手
- 可以给我们的模块做文档么?🤔
- 我们下次再说👋