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

简介: [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



  • 最终
  • 拆分代码 成功!


  • 可以将程序 拆分成
  • 输入
  • 输出
  • 然后再由主函数调用吗?🤔



目录
相关文章
|
7天前
|
测试技术 Python
手动解决Python模块和包依赖冲突的具体步骤是什么?
需要注意的是,手动解决依赖冲突可能需要一定的时间和经验,并且需要谨慎操作,避免引入新的问题。在实际操作中,还可以结合使用其他方法,如虚拟环境等,来更好地管理和解决依赖冲突😉。
|
18天前
|
Python
在Python中,可以使用内置的`re`模块来处理正则表达式
在Python中,可以使用内置的`re`模块来处理正则表达式
40 5
|
19天前
|
人工智能 Shell 开发工具
[oeasy]python0041_输出ASCII码表_英文字符编码_键盘字符_ISO_646
本文介绍了ASCII码表的生成与使用,包括英文字符、数字和符号的编码。通过Python代码遍历0到127的ASCII值,解决了找不到竖线符号的问题,并解释了ASCII码的固定映射关系及其重要性。文章还介绍了ASCII码的历史背景,以及它如何成为国际标准ISO 646。最后,通过安装`ascii`程序展示了完整的ASCII码表。
13 1
|
28天前
|
Java 程序员 开发者
Python的gc模块
Python的gc模块
|
1月前
|
人工智能 Python
[oeasy]python039_for循环_循环遍历_循环变量
本文回顾了上一次的内容,介绍了小写和大写字母的序号范围,并通过 `range` 函数生成了 `for` 循环。重点讲解了 `range(start, stop)` 的使用方法,解释了为什么不会输出 `stop` 值,并通过示例展示了如何遍历小写和大写字母的序号。最后总结了 `range` 函数的结构和 `for` 循环的使用技巧。
31 4
|
1月前
|
数据采集 Web App开发 JavaScript
python-selenium模块详解!!!
Selenium 是一个强大的自动化测试工具,支持 Python 调用浏览器进行网页抓取。本文介绍了 Selenium 的安装、基本使用、元素定位、高级操作等内容。主要内容包括:发送请求、加载网页、元素定位、处理 Cookie、无头浏览器设置、页面等待、窗口和 iframe 切换等。通过示例代码帮助读者快速掌握 Selenium 的核心功能。
92 5
|
2月前
|
Python
SciPy 教程 之 SciPy 模块列表 6
SciPy教程之常量模块介绍:涵盖公制、二进制(字节)、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率及力学单位。示例展示了角度单位转换为弧度的几个常用常量。
20 7
|
2月前
|
Python
SciPy 教程 之 SciPy 模块列表 7
`scipy.constants` 模块提供了常用的时间单位转换为秒数的功能。例如,`constants.hour` 返回 3600.0 秒,表示一小时的秒数。其他常用时间单位包括分钟、天、周、年和儒略年。
19 6
|
1月前
|
Python
SciPy 教程 之 SciPy 模块列表 13
SciPy教程之SciPy模块列表13:单位类型。常量模块包含多种单位,如公制、二进制(字节)、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例代码展示了如何使用`constants`模块获取零摄氏度对应的开尔文值(273.15)和华氏度与摄氏度的转换系数(0.5556)。
18 1
|
1月前
|
XML 前端开发 数据格式
超级详细的python中bs4模块详解
Beautiful Soup 是一个用于从网页中抓取数据的 Python 库,提供了简单易用的函数来处理导航、搜索和修改分析树。支持多种解析器,如 Python 标准库中的 HTML 解析器和更强大的 lxml 解析器。通过简单的代码即可实现复杂的数据抓取任务。本文介绍了 Beautiful Soup 的安装、基本使用、对象类型、文档树遍历和搜索方法,以及 CSS 选择器的使用。
88 1