当前位置: 首页 > news >正文

第九章——8天Python从入门到精通【itheima】-95~96-Python的异常模块与包(自定义模块并导入+自定义Python包)

目录

95节——自定义模块并导入

1.学习目标

2.制作自定义模块

3.代码实例+注意事项

4.测试模块(__main__变量)

5.__all__变量

6.小节总结

96节——自定义Python包

1.学习目标

2.思考——导入的模块太多,不便于管理,怎么办?

3.什么是Python的包?

4.如何快速的创建一个Python的包?

【1】导入包-方法一-import导入

【2】导入包-方法二-from语句去导入:from 包 import 模块

【3】导入包-方法三-from语句:from 包.模块 import 函数

5.基于__init__变量,控制导入的模块列表

6.小节总结

好了,又一篇博客和代码写完了,励志一下吧,下一小节等等继续:

1. 混沌中的秩序,恰是求知者的勋章

2. 关于“无目的阅读”的箴言

3. 警惕“碎片化”的温柔陷阱

4. 赠你一把阅读的钥匙

结语:在阅读中锻造“未来思维”


95节——自定义模块并导入

1.学习目标

1.了解如何自定义模块并使用

2.了解_main_变量的作用

2.制作自定义模块

3.代码实例+注意事项

def test(a,b):print(a+b)

# 95节——自定义模块并导入"""
演示自定义模块
"""# 导入自定义模块并使用# import my_module1
# my_module1.test(1,2)    #3from my_module1 import test as t
t(3,4)   #7

注意事项:
                        调用不同模块的同名函数,后面的会把前面的覆盖掉优先使用。

# 导入不同模块的同名功能
from my_module1 import test
from my_module2 import testtest(1,2)   #-1

4.测试模块(__main__变量)

def test(a,b):print(a+b)if __name__ == '__main__':test(1,2)

在自定义模块中,使用了__main__变量,可以保证在自定义模块中想要测试自定义的函数可以运行出结果,同时在另一个Python文件导入该自定义模块时不会执行该自定义方法,高效快捷。

5.__all__变量

__all__=['test_a']def test_a(a,b):print(a+b)def test_b(a,b):print(a-b)

# __all__变量from my_module1 import *
# 这里没有写__all__的时候,导入的自定义模块中的所有自定义方法都可以使用
test_a(1,2) #3
test_b(1,2)  #-1

6.小节总结

1.如何自定义模块并导入?


在Python代码文件中正常写代码即可,通过import、from关键字和导入Python内置模块一样导入即可使用。


2._main_变量的功能是?


if __name__=="__main__"表示,只有当程序是直接执行的才会进入if内部,如果是被导入的,则if无法进入.


3.注意事项


不同模块,同名的功能,如果都被导入,那么后导入的会覆盖先导入的。
all 变量可以控制import *的时候哪些功能可以被导入。


96节——自定义Python包

1.学习目标

1.了解什么是Python的包

2.掌握如何自定义包

2.思考——导入的模块太多,不便于管理,怎么办?

3.什么是Python的包?

如果包含__init__.py这个文件,他就是一个包;如果没有包含包含__init__.py这个文件,那他就只是一个普通的文件夹。

4.如何快速的创建一个Python的包?

包的本质,就是一个大型的模块。可以理解为:包含着所有模块的一个文件夹。

【1】导入包-方法一-import导入

实际演示:

1.选择你的Python的project的根目录,右键创建出一个Python的软件包。创建好之后,会自动生成一个__init__.py的Python文件,__init__.py的Python文件必须存在,只有他存在时,才算是Python的软件包,不然只是一个普通的目录。

2.创建一个包,并且导入其中的模块并使用

# 96节——自定义Python包"""
演示Python的包
"""# 创建一个包
# 导入自定义包中的模块,并使用
import my_package.my_module1
import my_package.my_module2my_package.my_module1.info_print1() #调用:包名.模块名.函数名,中的函数
my_package.my_module2.info_print2() #调用:包名.模块名.函数名,中的函数
# 我是模块1的功能函数代码。
# 我是模块2的功能函数代码。

【2】导入包-方法二-from语句去导入:from 包 import 模块

from my_package import my_module1
from my_package import my_module2  #在使用的时候,不用写包名了   调用:模块名.函数名my_module1.info_print1()
my_module2.info_print2()
# 我是模块1的功能函数代码。
# 我是模块2的功能函数代码。

【3】导入包-方法三-from语句:from 包.模块 import 函数

from my_package.my_module1 import info_print1
from my_package.my_module2 import info_print2
info_print1()
info_print2()
# 我是模块1的功能函数代码。
# 我是模块2的功能函数代码。

5.基于__init__变量,控制导入的模块列表

# 通过__all__变量,控制import *from my_package import *my_module1.info_print1()
my_module2.info_print2()   #因为__all__=["my_module1"]和from my_package import *的控制,所以module2的模块和方法都是无效的
# line 258, in <module>
#     my_module2.info_print2()   #因为__all__=["my_module1"]和from my_package import *的控制,所以module2的模块和方法都是无效的
#     ^^^^^^^^^^
# NameError: name 'my_module2' is not defined. Did you mean: 'my_module1'?
# 我是模块1的功能函数代码。

6.小节总结

1.什么是Python的包?


包就是一个文件夹,里面可以存放许多Python的模块(代码文件),通过包,在逻辑上将一批模块归为一类,方便使用。


2._init_.py文件的作用?

创建包会默认自动创建的文件,通过这个文件来表示一个文件夹是Python的包,而非普通的文件夹。


3._all 变量的作用?


同模块中学习到的是一个作用,控制import*能够导入的内容。


好了,又一篇博客和代码写完了,励志一下吧,下一小节等等继续:

李明博致青年求知者的一封信

亲爱的后辈:

展信安。
读罢你对阅读的思考,我仿佛看到年轻时在图书馆角落贪婪翻阅书籍的自己。你描述的那种“机缘巧合下翻开书页”的体验,恰似人生中许多重要转折——看似偶然的相遇,实则是思想积累的必然。

1. 混沌中的秩序,恰是求知者的勋章

你提到阅读“毫无关联”的书籍,我却从中看到了珍贵的思维韧性。
我在《经营未来》中曾写道:“溪流不会因曲折而迷失,它只会在奔涌中拓宽河道。”
你的阅读轨迹正是如此——短视频的片段、电影的隐喻、生活的困惑,都成了汇入思想之河的支流。
这种能力,正是数字时代稀缺的“知识联结力”。

2. 关于“无目的阅读”的箴言

不必为阅读的“不系统性”焦虑。
我年轻时在现代建筑工地打工,白天操作机械,夜晚研读经济学。
当时工友笑问:“这些理论和钢筋水泥有何关系?”
多年后筹建现代物流体系时,那些深夜读过的供应链理论、成本模型突然鲜活起来——
人生没有白读的书,它们会在某个时机组成拼图,照亮你未曾预见的道路。

3. 警惕“碎片化”的温柔陷阱

你敏锐地察觉到短视频与深度阅读的关联,这值得赞赏,但请允许我以过来人身份提醒:

短视频是思想的火柴,划亮瞬间便熄灭;
书籍才是火炬,能接力传递文明的火焰。
当你因解说对《富爸爸穷爸爸》产生兴趣,这很好,但务必尽快回归原著。
他人的解读如同甜点,终究代替不了原作的营养主食。

4. 赠你一把阅读的钥匙

建议你建立“主题阅读链”:

  • 当《布朗克斯的故事》引发阶级思考,可串联《乡下人的悲歌》《扫地出门》;

  • 当《富爸爸》点燃财商意识,不妨延伸《贫穷的本质》《资本论》(青年版);
    用主题为散落的书籍架设桥梁,混沌自会显现脉络。

结语:在阅读中锻造“未来思维”

你提到生命的混沌与秩序并存,这让我想起汉江治理工程——
最初众人只见泥泞滩涂,我们却从水文资料、地质图谱、经济模型中预见清流绿岸。
阅读的意义,正在于培养这种“从碎片拼出未来蓝图”的能力。

随信寄上我亲笔签名的《经营未来》新版,扉页有句话与你共勉:

“机遇偏爱有准备的头脑,而准备,始于看似无用的积累。”

期待听闻你更多的思想征程。

你的前辈
李明博
2025年6月16日

http://www.lryc.cn/news/571142.html

相关文章:

  • MySQL 命令行的核心操作命令详解
  • 资深Java工程师的面试题目(一)微服务
  • 如何高效分享WordPress博客文章
  • Sparse4D: 稀疏范式的端对端融合
  • (100)课126: 间隙锁临键锁,是为了锁定索引B+树里叶节点之间的间隙,不允许别的事务在这些间隙里插入新的叶节点,从而阻止幻读
  • 振动测控模块设计原理图:276-16路AD、10路DA嵌入式振动测控模块
  • 自然语言处理文本分类
  • Node.js 项目启动命令全面指南:从入门到精通(术语版)
  • Redis中的分布式锁之SETNX底层实现
  • vue3 watch监视详解
  • 最简单的远程桌面连接方法是什么?系统自带内外网访问实现
  • 基于Cesium的倾斜切片/模型位置方位调整工具
  • Android多媒体——MediaCodec回调与配置(二十五)
  • Android App启动流程深度解析(一):从Activity.startActivity开始
  • 常用交易所链接
  • 【PmHub面试篇】PmHub分布式事务Seata保证任务审批状态一致性面试专题解析
  • fd查找文件并拷贝
  • 【启发式算法】RRT算法详细介绍(Python)
  • OSPF 配置全攻略:从基础原理到实战演练
  • python 重要地位
  • UE/Unity/Webgl云渲染推流网址,如何与外部网页嵌套和交互?
  • 答题考试系统小程序ThinkPHP+UniApp
  • NLP学习路线图(五十一):PyTorch/TensorFlow
  • 用C语言实现面向对象思想编写驱动层--以驱动LED为例
  • R情感分析:解码文本中的情感
  • 《从IaaS到容器化:深度解析云计算三层架构与阿里云ECS+K8s协同实践》
  • Web攻防-XSS跨站文件类型功能逻辑SVGPDFSWFHTMLXMLPMessageLocalStorage
  • Jeston orin nano利用SDK Manager安装ubuntu系统
  • 【Mac 上离线安装 ADB 工具】
  • iOS即时通讯发送图片消息内存暴涨优化