什么是Python模块?与库有何不同?
对于初学者来说,理解Python模块和库的概念可能很困难。从总体内容上可以看出,它们都是代码的集合。但它们之间存在显著的区别。
本文将展示Python模块和库之间的主要区别。
更多Python相关文章,请阅读:Python 教程
Python模块和库
现实世界中的程序非常复杂。即使是简单的软件也包含数千行代码。因此,编写连续流程的代码对于程序员和开发人员来说是困难的。开发人员使用模块化编程来促进学习,并使其逻辑上分离。这是将巨大的编码任务分解为更短、更逻辑和更灵活的子任务的方法。
Python的易用性是其主要目标之一。正因为如此,Python有许多模块和库。
Python模块
模块是在Python程序中一起打包的相关代码集合。在模块内,程序员可以定义函数、类或变量。也可以在模块中包含可以运行的代码。换句话说,它们是包含有效Python定义和语句的Python文件。创建这些文件时,将.suffix.py附加到它们。通过将相关代码分组到模块中,代码变得更容易理解和实现。它还以逻辑的方式组织代码。
模块分为两种类型。
- 预定义模块(内置模块)
- 用户自定义模块
- 外部模块
预定义模块
这些也称为内置模块。Python有大量的内置模块。程序员可以通过调用它们的名称以及关键字’import’来在Python应用程序中使用这些模块。例如导入math。大多数内置Python模块都是用C编写的,然后与Python解释器结合在一起,以使解释器能够与它们一起工作。
Math,datetime,statistics,random,os,sys 等流行的内置Python模块。
示例
#从数学模块导入平方根和阶乘函数
from math import sqrt, factorial
#使用sqrt()函数打印16的平方根
print('16的平方根= ',sqrt(16))
#使用factorial()函数打印5的阶乘
print('5的阶乘= ',factorial(5))
输出
在执行上述程序时,将生成以下输出−
('16的平方根= ', 4.0)
('5的阶乘= ', 120)
用户自定义模块
Python给程序员的另一个优势是创建用户自定义模块的能力。Python使程序员可以定制自己的操作,并控制它们。程序员可以在用户自定义模块内设计自己的函数、变量和类的集合。
导入用户自定义模块的技术与预定义模块相同。
示例
sampleModule.py
def sampleFunction(givenValue):
print("传递给函数的值为:", givenValue)
编译代码
import sampleModule
sampleModule.sampleFunction(10)
输出
在执行上述程序时,将生成以下输出−
首先,我们创建了一个名为 sampleModule.py 的模块。在该模块内,我们定义了一个名为 sampleFunction 的函数,该函数以一个值作为参数并将其打印出来。
之后,我们使用编译器导入之前创建的 sampleModule 模块。导入模块后,我们可以使用(.)运算符来访问它的所有函数。
因此,我们通过传递某个随机值作为参数来调用 sampleModule 的 sampleFunction ,然后该函数会打印出参数的值。
外部模块
外部模块必须从外部下载。它们还不存在,就像内置模块一样。安装它们是一项非常简单的任务,可以在编译器终端中使用“pip install module_name”命令来完成。有这么多模块可用,即使是最好的程序员对所有模块的熟悉似乎也很有帮助。因此,您可以搜索模块以查找并根据需要使用它们。您无需记住所有内容,只需在需要时搜索网站即可。
示例
emoji模块
Emoji已成为表达和增强简单、无聊文本的一种方式。现在,这颗宝石也可以在Python程序中使用。没错,确实是这样!现在您有了用表情符号编写代码的终极方式。为此,您需要安装Emoji模块。
安装
pip install emoji
下面的程序使用Emoji模块打印出表情符号−
# 从Emoji模块中导入emojize函数
from emoji import emojize
# 将表情符号名称作为参数传递给emojize()函数
print(emojize(":thumbs_up:"))
输出
执行上述程序后,将生成以下输出−
库
库是一个大的术语,它包括一个可重复使用的Python代码/指令集。
Python库通常是一组类似的模块,它们在单个名称下分组在一起。开发人员通常使用它来与社区共享可重用的代码。这消除了从头编写Python代码的需要。
程序员和开发人员可以在同一领域中构建自己的一组有用的函数。当程序员和开发人员在计算机上安装Python解释器时,标准库也会随之安装。Python库包括matplotlib、Pygame、Pytorch、Requests、Beautifulsoup等。
示例
# 使用别名名称导入matplotlib库
import matplotlib.pyplot as matplot
# 输入第一个列表
inputList_1 = [1, 4, 6, 8]
# 输入第二个列表
inputList_2 = [2, 6, 3, 9]
# 将inputList_1、inputList_2的值绘制成图表,将inputList_1值放在x轴上
# 将inputList_2值放在y轴上。
matplot.plot(inputList_1, inputList_2)
# 为x轴提供标签/名称
matplot.xlabel('X-axis')
# 为y轴提供标签/名称
matplot.ylabel('Y-axis')
# 为图表提供标题
matplot.title('Data Visualization的图表')
# 显示图表
matplot.show()
输出
执行上述程序后,将生成以下输出−
模块与库之间的区别
以下表格显示了Python语言中模块和库之间的主要区别。
模块 | 库 |
---|---|
模块是带有.py扩展名的一组代码或函数。 | 库是相关模块或包的集合。 |
模块既可用于程序员,也可用于开发人员。 | 库可供社区成员、开发人员和研究人员使用。 |
使用模块使代码更易于阅读。 | 库没有为易于阅读做出贡献。 |
模块是程序员可导入的逻辑功能组,以便重用其代码或一组语句。 | 库使使用编程语言、开发人员和其他研究人员能够重用相关代码集合。 |
当Python程序员导入模块时,解释器会在各种位置搜索模块的定义或主体。 | 在我们可以使用库的模块或包之前,必须先将它们安装在我们的Python项目中。我们通常使用pip install命令。 |
模块通常是用有效语句或代码编写的Python。 | 库,特别是标准库,通常是用C或Python开发的。 |
创建模块的基本目标是防止DRY即Don’t Repeat Yourself。 | 库没有这样的目标。 |
要返回一个已排序的字符串列表,其中包含指定模块中的函数名称,可以使用Python内置的dir()函数。 | 没有一个显式的函数能返回库中的模块数量。即便如此,程序员可以利用help()函数获取一些信息。 |
受欢迎的Python内置模块包括 os、sys、math、random 等。 | 受欢迎的Python内置库包括 Pygame、Pytorch、matplotlib 等等。 |
结论
在本文中,我们通过示例了解模块和库,并了解了它们之间的区别。