show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- 上次研究了跨文件模块调用函数
- 使用了两个模块
- os
- random
- 其中random还调用了os
- os有两部分组成
- os.py
- 还有一些系统调用的部分
- 是系统相关的
- 写在c的源码中
- 我可以自己定义一些
- 模块
- 变量
- 函数么?
- 运行模块就是运行模块文件夹下的
__main__.py
- 首先进入/usr/lib/python3.8位置
- 然后尝试调用
- 引用之后可以再次引用么?
- 任意一个位置都可以引用这个模块么?
- 可以引用
- 这样我们就可以复用原来的代码了!!!
- 而且把一个小功能封装成一个模块
- 具体这个音频信号
- 怎么发生
- 对波形进行怎样的调整
- 模拟出什么样的音色
- 都是可以调整的
- 觉得某个音色不错
- 可以把这个调整的结果固化下来
- 变成一个模块
- 下次调用模块就成了
- 没有那么多的线了
- 只有少量接口
- 一调用就好使
- 函数也是封装
- 模块也是封装
- 有什么区别呢?
- 一个模块里面包含若干函数、设置
- 就好像我们的一个电子琴
- 都封装好了
- 具体选择什么音色 都是设置
- 设置好之后 按键就完事了
- 按键就是调用具体的函数
- 函数是模块中的一部分
- 模块还包括常量、配置等等其他部分
- 这些都是写在具体文件里的
- 模块和具体文件是什么关系呢?
- 一个oeasy.py文件就是一个模块(module)
- 被引用的模块里面会有一个全局(global)变量
__name__
这个name里面存着模块的名字
- 我们去试试
- 重新编辑/usr/lib/python3.8/oeasy.py
- module名就是文件名
- 可以给这个模块更多帮助信息么?
- 进入系统类库的位置
- /usr/lib/python3.8
- 编写我们自己的oeasy.py
- 这个文件就是一个模块
- 这个模块可以在游乐场和py文件中被导入(import)
- 导入后模块执行主程序
- 也可以建立一个文件夹
- 在文件夹中建立
__main__.py
- 这样文件夹就是一个模块
- 导入的时候执行
__main__.py
- 那么这个文件夹可以嵌套么?
- 做成一层层的那种嵌套软件包(package)的形式?🤔
- 在文件夹中建立
- 我们下次再说👋