当前位置: 首页 > 资讯

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

日期:2023-04-28 21:01:13 来源:哔哩哔哩

自制包内容

回忆上次内容

上次导入了外部的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

标签:

热门推荐

猜你喜欢

市场