[oeasy]python0141_自制模块_module_reusability_复用性
自制包内容 回忆上次内容
-
上次导入了外部的py文件
-
import my_module
-
导入一个自己定义的模块
-
可以使用my_module中的变量
-
不能 直接使用 my_module.py文件中的变量
-
只要加my_module.作为前缀就可以
-
直接导入导入变量、函数
-
from my_module import pi
-
可以导入my_module.pi 并作为pi变量使用
-
from my_module import pi as my_module_pi
-
导入变量并重命名
-
上次那个苹果香蕉统计程序
-
能封装成文件模块
-
再导入么?🤔
-
我们来改造原始的 apple.py
建立文件夹

添加图片注释,不超过 140 字(可选)
-
进入文件夹
-
准备编辑
-
我想要把原来的apple.py拆成立两个py文件
-
input.py
-
负责输入 两个数字
-
分别是
-
苹果的数量
-
香蕉的数量
-
output.py
-
负责计算水果总量
-
并输出最终水果总数
-
那python里面
-
有没有现成的 input和output 模块呢?
尝试修改
-
别重名了!

添加图片注释,不超过 140 字(可选)
-
看起来没有默认的input和output模块
-
不怕模块重名了
-
不过input好像是很重要的函数的名字

添加图片注释,不超过 140 字(可选)
-
output.py 这个名字可以放心用
-
input 这个名字修改为 get_fruits.py
拆分文件
-
vi -o get_fruits.py output.py
-
进入vim后

添加图片注释,不超过 140 字(可选)
-
:windo r ../apple.py
-
在两个窗口中都读取
-
../apple.py
-
上一层目录之下的apple.py

添加图片注释,不超过 140 字(可选)
编辑
-
ctrl+j、ctrl+k
-
可以切换当前活动(active)窗口
-
修改代码 如下图所示

添加图片注释,不超过 140 字(可选)
-
注意这里是:wa|!python3 %
-
:wa的意思是
-
write all changed buffers
-
把所有修改了的缓存都存盘
-
然后再用python3来运行
运行结果
-
运行输入部分的环节时
-
没有问题
-
运行输出部分的环节时
-
出错了

添加图片注释,不超过 140 字(可选)
-
输入没有问题
-
但是参数a、b
-
好像没传过去?
调试程序
-
从get_fruits.py到output.py的过程中
-
好像没有传递成功?
-
到底 a 是多少呢?
-
输出看看

添加图片注释,不超过 140 字(可选)
-
给正确数据

添加图片注释,不超过 140 字(可选)
-
a 根本没有被声明!
找到a
-
a 不认
-
a 是 getfruit 这个模块(module)里的变量
-
给a加上namespace
-
get_fruits.a 认么?

添加图片注释,不超过 140 字(可选)
-
上码
-
再战

添加图片注释,不超过 140 字(可选)
-
这次认了
-
现在需要的就是赋值了
最终

添加图片注释,不超过 140 字(可选)
-
录入数据

添加图片注释,不超过 140 字(可选)
-
成功
-
我们真的自制了一个输入模块
-
为什么要把一个完成的程序
-
拆成两个模块呢?
复用性Reusability
-
get_fruits.py作为 被导入的模块
-
可以 导入统计程序中 计算水果总量
-
也可以 导入计价程序中 计算水果价格
-
还可以 导入比较程序中 比较哪种水果更多

添加图片注释,不超过 140 字(可选)
-
代码 可以在不同的模块之间复用
-
以前用过什么 可复用的代码 吗?
复用的模块
-
有个模块 我们经常使用
-
time

添加图片注释,不超过 140 字(可选)
-
我们可以感觉到 python 的可扩展性
-
从各种 python 程序
-
到底层的 python 各种辅助模块
-
python 代码复用就是这么容易
-
这才是打一场人民战争的基础
-
如今我们也写了自己的python模块
-
这两个py文件
-
get_fruits.py
-
output.py
-
之间是什么关系呢?
结构
-
总共两个python文件
-
output.py 是主模块
-
get_fruits.py 是被引用的模块

添加图片注释,不超过 140 字(可选)
-
运行output.py主模块的时候
-
导入了 被引用的get_fruits.py
-
先录入
-
然后输出
-
如何理解 导入 呢?
-
英文
-
import 导入
-
export 导出
-
词根port 本意为港口
总结
-
这次把 apple.py 拆分了
-
拆成了
-
输入
-
主函数
-
使用 引用模块中变量的时候
-
要使用上包名
-
get_fruits.a
-
get_fruits.b
-
最终
-
拆分代码 成功!
-
可以将程序 拆分成
-
输入
-
输出
-
然后再由主函数调用吗?🤔
-
下次再说👋🏻
-
蓝桥->https://www.lanqiao.cn/courses/3584
-
github->https://github.com/overmind1980/oeasy-python-tutorial
-
gitee->https://gitee.com/overmind1980/oeasypython