欢迎光临散文网 会员登陆 & 注册

[oeasy]python0141_自制模块_module_reusability_复用性

2023-04-28 21:13 作者:oeasy  | 我要投稿

自制包内容

回忆上次内容

  • 上次导入了外部的py文件

    • 不能 直接使用 my_module.py文件中的变量

    • 只要加my_module.作为前缀就可以

    • 导入一个自己定义的模块

    • import my_module

    • 可以使用my_module中的变量

  • 直接导入导入变量、函数

    • 导入变量并重命名

    • 可以导入my_module.pi 并作为pi变量使用

    • from my_module import pi

    • from my_module import pi as my_module_pi

  • 上次那个苹果香蕉统计程序

    • 能封装成文件模块

    • 再导入么?🤔

  • 我们来改造原始的 apple.py

建立文件夹

  • 进入文件夹

    • 准备编辑

  • 我想要把原来的apple.py拆成立两个py文件

    • 负责计算水果总量

    • 并输出最终水果总数

    • 负责输入 两个数字

    • 分别是

    • 苹果的数量

    • 香蕉的数量

    • input.py

    • output.py

  • 那python里面

    • 有没有现成的 input和output 模块呢?

尝试修改

  • 别重名了!

  • 看起来没有默认的input和output模块

    • 不怕模块重名了

  • 不过input好像是很重要的函数的名字

  • output.py 这个名字可以放心用

  • input 这个名字修改为 get_fruits.py

拆分文件

  • vi -o get_fruits.py output.py

  • 进入vim后

  • :windo r ../apple.py

    • ../apple.py

    • 上一层目录之下的apple.py

    • 在两个窗口中都读取

编辑

  • ctrl+j、ctrl+k

    • 可以切换当前活动(active)窗口

  • 修改代码 如下图所示

  • 注意这里是:wa|!python3 %

    • write all changed buffers

    • 把所有修改了的缓存都存盘

    • :wa的意思是

    • 然后再用python3来运行

运行结果

  • 运行输入部分的环节时

    • 没有问题

  • 运行输出部分的环节时

    • 出错了

  • 输入没有问题

  • 但是参数a、b

    • 好像没传过去?

调试程序

  • 从get_fruits.py到output.py的过程中

    • 输出看看

    • 好像没有传递成功?

    • 到底 a 是多少呢?

  • 给正确数据

  • a 根本没有被声明!

找到a

  • a 不认

    • a 是 getfruit 这个模块(module)里的变量

    • 给a加上namespace

  • get_fruits.a 认么?

  • 上码

  • 再战

  • 这次认了

  • 现在需要的就是赋值了

最终

  • 录入数据

  • 成功

    • 我们真的自制了一个输入模块

  • 为什么要把一个完成的程序

    • 拆成两个模块呢?

复用性Reusability

  • get_fruits.py作为 被导入的模块

    • 可以 导入统计程序中 计算水果总量

    • 也可以 导入计价程序中 计算水果价格

    • 还可以 导入比较程序中 比较哪种水果更多

  • 代码 可以在不同的模块之间复用

  • 以前用过什么 可复用的代码 吗?

复用的模块

  • 有个模块 我们经常使用

    • time

  • 我们可以感觉到 python 的可扩展性

    • 从各种 python 程序

    • 到底层的 python 各种辅助模块

    • python 代码复用就是这么容易

    • 这才是打一场人民战争的基础

  • 如今我们也写了自己的python模块

  • 这两个py文件

    • get_fruits.py

    • output.py

    • 之间是什么关系呢?

结构

  • 总共两个python文件

    • output.py 是主模块

    • get_fruits.py 是被引用的模块

  • 运行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


[oeasy]python0141_自制模块_module_reusability_复用性的评论 (共 条)

分享到微博请遵守国家法律