【Python基础入门系列】第06天:Python 模块和包

网友投稿 515 2022-11-14

【Python基础入门系列】第06天:Python 模块和包

【Python基础入门系列】第06天:Python 模块和包

在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。

为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在Python中,一个.py文件就称之为一个模块(Module)。

先给大家解释一下模块、包、库之间的概念:

模块(module)其实就是py 文件,里面定义了一些函数、类、变量等包(package)是多个模块的聚合体形成的文件夹,里面可以是多个 py 文件,也可以嵌套文件夹库是参考其他编程语言的说法,是指完成一定功能的代码集合,在 Python 中的形式就是模块和包

下面我们来分开介绍:模块

使用模块有什么好处?

最大的好处是大大提高了代码的可维护性。其次,编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。我们在编写程序的时候,也经常引用其他模块,包括Python内置的模块和来自第三方的模块。

使用模块还可以避免函数名和变量名冲突。相同名字的函数和变量完全可以分别存在不同的模块中,因此,我们自己在编写模块时,不必考虑名字会与其他模块冲突。但是也要注意,尽量不要与内置函数名字冲突

定义和调用 Python 模块

下面先来看真实的定义一个 Python 模块。

定义一个 hello.py 模块,内容如下:

def sayhello( ): print("Hello 学长!")

一般情况下,我们使用 import 语句来引入模块:

import module1[, module2[,... moduleN]]

当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入。调用的时候使用 ​​模块名.函数名​​

以上的示例为例,我们新建 do.py 文件调用 hello.py 模块中方法。

do.py 文件内容如下:

# 导入模块import hello# 现在可以调用模块里包含的函数了hello.sayhello()

在 do.py 页面执行快捷键 ctrl+b (sumblime中)控制台输出:Hello 学长!,证明调用 hello.py 中的方法成功。

再来说“包”

你也许还想到,如果不同的人编写的模块名相同怎么办?为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package)。

举个例子,一个​​abc.py​​​的文件就是一个名字叫​​abc​​​的模块,一个​​xyz.py​​​的文件就是一个名字叫​​xyz​​的模块。

现在,假设我们的​​abc​​​和​​xyz​​​这两个模块名字与其他模块冲突了,于是我们可以通过包来组织模块,避免冲突。方法是选择一个顶层包名,比如​​mycompany​​,按照如下目录存放:

​​mycompany ├─ __init__.py ├─ abc.py └─ xyz.py​​

包(package)是 Python 中对模块的更高一级的抽象。

简单来说,Python 允许用户把目录当成模块看待。这样一来,目录中的不同模块文件,就变成了「包」里面的子模块。此外,包目录下还可以有子目录,这些子目录也可以是 Python 包。这种分层,对模块识别、管理,都是非常有好处的。

特别地,对于一些大型 Python 工具包,内里可能有成百上千个不同功能的模块。科学计算领域,SciPy, NumPy, Matplotlib 等第三方工具,都是用包的形式发布的。

包定义

常见的包层级目录结构如下:

pakageName -------__init__.py -------moduleName1.py -------moduleName2.py ------- ...

包路径下必须存在 ​​__init__.py​​ 文件。

使用 Python 包

Python 包的使用和模块的使用类似,下面是导入的语法:

import 包名.包名.模块名

总结

本节给大家介绍了 Python  模块和包的使用,模块是一组Python代码的集合,可以使用其他模块,也可以被其他模块使用。创建自己的模块时,要注意:

模块名要遵循Python变量命名规范,不要使用中文、特殊字符;模块名不要和系统模块名冲突,最好先查看系统是否已存在该模块,检查方法是在Python交互环境执行import abc,若成功则说明系统存在此模块。

参考:

​​https://liaoxuefeng.com/wiki/1016959663602400/1017454145014176​​

​​https://python.org/​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【Python基础入门系列】第08天:Python List
下一篇:Springboot异常日志输出方式
相关文章

 发表评论

暂时没有评论,来抢沙发吧~