Python模块与包
【一】模块的介绍
【1】什么是模块
- 在Python中,一个py文件就是一个模块,文件名为xxx.py模块名则是xxx,导入模块可以引用模块中已经写好的功能。
- 如果把开发程序比喻成制造一台电脑
- 编写模块就像是在制造电脑的零部件
- 准备好零部件后,剩下的工作就是按照逻辑把它们组装到一起。
- 将程序模块化会使得程序的组织结构清晰,维护起来更加方便。
- 比起直接开发一个完整的程序,单独开发一个小的模块也会更加简单,并且程序中的模块与电脑中的零部件稍微不同的是:程序中的模块可以被重复使用。
- 所以总结下来,使用模块既保证了代码的重用性,又增强了程序的结构性和可维护性。
- 另外除了自定义模块外,我们还可以导入使用内置或第三方模块提供的现成功能,这种“拿来主义”极大地提高了程序员的开发效率。
【2】模块的优点
- 极大地提高了程序员的开发效率。
【3】模块的来源
- 内置的:python解释器自带的,直接拿来使用的
- 第三方的:别人写的,如果想用,就要先下载在使用
- 自定义的:我们自己写的
【4】模块的存在形式
- 我们自己写的py文件(一个py文件就是一个模块)
- 包:一系列py文件的集合(文件夹)
一个包里面会有一个__init__.py文件
【二】模块的使用
【0】准备
- 新建一个文件foo.py
【1】直接导入
- import语句
【2】详细导入
- from ...import ...语句
- 另外from语句支持
from xx import *
语法,*
代表将foo中所有的名字都导入到当前位置
【3】模块重命名
- from... import...as...语句
【三】搜索模块的路径与优先级
【1】模块的分类
- 模块其实分为四个通用类别,分别是:
- 1、使用纯Python代码编写的py文件
- 2、包含一系列模块的包
- 3、使用C编写并链接到Python解释器中的内置模块
- 4、使用C或C++编译的扩展模块
- 在导入一个模块时
- 如果该模块已加载到内存中,则直接引用
- 否则会优先查找内置模块
- 然后按照从左到右的顺序依次检索
sys.path
中定义的路径
- 然后按照从左到右的顺序依次检索
- 直到找模块对应的文件为止
- 否则抛出异常。
【四】包
【1】什么是包
- 包是一个模块的集合,它可以将多个模块的功能组合到一起。
- 包可以按照其功能和作用进行分类,方便用户查找和使用。
- 包是在Python标准库中定义的一种特殊类型的模块,可以通过import语句来引入和使用。
- Python的包分为标准库包和第三方库包。
- 标准库包是Python内置的包,包含了一些基本的模块和函数,如os、sys、random等;
- 第三方库包是第三方开发的包,通常提供了更加丰富和高级的功能。
【2】包结构
- 包是Python程序中用于组织模块的一种方式。包是一个包含模块的目录,同时还可以包含其他子包。
- 要创建一个包,我们只需要在目录中创建一个名为
__init__.py
的文件即可。
- 包路径下必须存在
__init__.py
文件。
【3】创建包
- 我们创建一个 cal 的包,包中有一个计算器的 model ,结构如下:
【4】直接使用包
- 语法
- 演示
【五】绝对路径和相对路径
- 在Python中,路径分为相对路径和绝对路径。
【1】相对路径
- 相对路径是相对于当前工作目录或当前脚本文件所在目录的路径。
- 使用相对路径时,你指定的路径是相对于执行脚本的当前工作目录的。
【2】绝对路径
-
绝对路径是文件或目录在文件系统中的完整路径,不依赖于当前工作目录。
-
使用绝对路径时,你指定的路径是从文件系统的根目录开始的。
__EOF__

本文作者:Fredette
本文链接:https://www.cnblogs.com/Fredette/p/17909714.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/Fredette/p/17909714.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!