[oeasy]python071_我可以自己做一个模块吗_自定义模块_引入模块_import_diy
导入import
回忆上次内容
- 模块 就是 封装好功能 的 部件
- 如 wifi模块
- 导入
__hello__
module模块- 可以 输出
hello world!
- 看起来很简单
- 可以 输出

- 我想要做个
自己的
模块- 能行吗??🤔
新建文件 my_file
- 尝试 编辑
- my file.py
- 注意
- my file 之间 是 空格
vi my file.py
- 运行结果
- 打开了一个my

- 为什么会这样?
继续观察
- :ls
- 底行命令ls
- 显示文件缓冲列表

- 可以看到打开了两个文件
- my
- file.py
- 空格 成了
- 切开 文件名的利刃
- 这 怎么办 呢?
退回到shell

- :q!
- 先强制 退回到 shell
下划线的 作用
- 下划线 可以代替 空格
- 而且
能
用在 文件名中 - python模块名 需要使用 蛇形命名法
- 而且
- 编辑 my_file.py
vi my_file.py
- 先试着引入
__hello__
- 注意hello两端各有两个下划线

- 然后保存并运行

- 确实在my_file.py中
- 引入了
__hello__
模块
- 引入了
- 想要再把 time中的asctime
- 导入 my_file
my_file.py
import __hello__
import time
print(time.asctime())
- 保存并运行

- my_file.py如上图所示
- 通过引入time包
- 就可以得到当前时间了

- 这my_file.py
- 也可以作为
- 自定义模块
被
引入吗?
游乐场实战
- 自定义模块 my_file
- 可以 被导入

- my_file中有什么呢?
dir(my_file)
- my_file 中包括
__hello__
- time

- my_file 可以
- 作为 模块
- 被导入到 另一个 py文件 吗?
编辑oeasy.py
- 退出游乐场
- 回到vim
- 再次编辑 my_file.py

- 键入
:e oeasy.py
- e 指的是 edit 编辑
- 编辑一个oeasy.py

- 在vim中
- 新建了 oeasy.py 的
- 缓存(buffer)
缓存列表
- :ls
- 列出 所有打开的
- 缓存(buffer)

- 如何 在缓存列表 中
- 切换 当前buffer 呢?
切换 缓存
- :b1
- buffer1
- 切换到 1号缓存文件
- my_file.py
- :b2
- buffer2
- 切换到 2号缓存文件
- oeasy.py

- 这样 就可以 切换
- 当前 编辑的 缓存
- buffer
引入模块
- 打开 oeasy.py
- 并进行 编辑
- 在oeasy.py中 只有 一句话
- import my_file
- 导入 my_file模块

- 保存并运行
运行结果
- 虽然oeasy.py中
- 只有 一句话
- 但是通过 导入my_file模块
- 实现了
- hello
- 报时
- 实现了

- 可以在 自己模块 里
- 输出说明 吗?
自定义模块
- 编辑my_file.py
import __hello__
import time
print(time.asctime())
print("This is my first module")
- 在自己的模块 my_file中
- 输出了 一句话

- 导入模块时
- 完成输出
- oeasy.py中
- 可以使用
- my_file模块中的 成员 吗?
切换缓存后

- 切换 缓存
- 来到my_file.py
- 把最后一行
- 修改 为
- pi = 3.14

- 可以在oeasy.py中
- 访问到
- my_file模块 中的
- pi这个变量 吗?
查看 模块中的变量
- my_file模块里
- 都有些什么?
import my_file
print(dir(my_file))
- my_file 里面有 导入的
- 模块
__hello__
- 变量 pi
- 模块 time
- 模块

- 怎么引入?🤔
尝试 引用模块中的 变量
- 总共两句话
- 1.导入my_file这个模块
- 2.输出my_file模块中 pi这个变量

- 在oeasy.py中
- 导入my_file模块之后
- 尝试输出my_file.pi

- 输出成功!
- 可以直接 输出pi 吗?
尝试直接输出pi
- 尝试直接输出pi

- 尝试失败

- pi 是模块中的变量
- 想用 就必须带上模块的名字
- my_file.pi
- 中间
.
的意思是的
- my_file 模块中的 pi属性
- 想用 就必须带上模块的名字
名字空间
- 就像
- 访问 time模块中的
- asctime函数
- time.asctime()
import time
print(time.asctime)
- 名字空间 就是
- 模块的名字
- 成员的所有者
- 直接找pi找不到
- 带着名字空间
- my_file.file
- 就可以找到了
- 带着名字空间
总结
- 这次导入了系统模块
__hello__
time
- 自己 定义了 模块
- my_file
- 导入 my_file.py
- 作为 自定义的
- my_file模块
- 可以使用
- my_file.pi
- my_file模块中的变量pi
- 但不能直接 用pi

- 如果
就
想 直接用pi- 又应该怎么办呢???🤔
- 下次再说 👋
- 蓝桥->https://www.lanqiao.cn/courses/3584
- github->https://github.com/overmind1980/oeasy-python-tutorial
- gitee->https://gitee.com/overmind1980/oeasypython
还没人赞这篇日记