Python中的模块和库有什么区别?
我有Java的背景,对Python还不熟悉。在继续之前,我想确保正确理解Python术语 我对模块的理解是:一个可以由许多脚本导入的脚本,以便于阅读。就像在java中一样,您有一个类,该类可以由许多其他类导入 我对库的理解是:库包含许多模块,这些模块按其用途分开 我的问题是:库是否像包一样,你有一个包,例如称为Python中的模块和库有什么区别?,python,module,package,Python,Module,Package,我有Java的背景,对Python还不熟悉。在继续之前,我想确保正确理解Python术语 我对模块的理解是:一个可以由许多脚本导入的脚本,以便于阅读。就像在java中一样,您有一个类,该类可以由许多其他类导入 我对库的理解是:库包含许多模块,这些模块按其用途分开 我的问题是:库是否像包一样,你有一个包,例如称为食品,然后: 巧克力 甜食 比斯切茨 是否包含在食品包装中 或者图书馆使用软件包,所以如果我们有另一个软件包饮料: 牛奶 果汁 包含在包裹中。库包含两个包 此外,应用程序编程接口(
食品,然后:
- 巧克力
- 甜食
- 比斯切茨
是否包含在食品
包装中
或者图书馆使用软件包,所以如果我们有另一个软件包饮料:
- 牛奶
- 果汁
包含在包裹中。库
包含两个包
此外,应用程序编程接口(API)通常包含一组库,位于层次结构的顶部:
原料药
图书馆
包装
模块
剧本
那么API将由2-5组成 只有包和模块具有特定于Python的定义良好的含义
a本身并不是一个代码集合——它更像是一个“协议”规范,说明了各个部分(通常是库)如何相互通信。python中有几个值得注意的“标准”API。例如
在我看来,库是任何不是应用程序的东西——在python中,库是一个模块——通常带有子模块。库的范围是非常可变的-例如,它的范围很大(有很多子模块),而PyPi中有很多单用途库,例如,a是一个公共名称空间下的python模块集合。在实践中,一个是通过将多个python模块放置在一个带有特殊\uuu init\uuu.py
模块(文件)的目录中创建的
A是要导入的python代码的单个文件。这有点简化,因为实际上有很多模块,在这种情况下会做一些特殊的事情
脚本是一个单独的python代码文件,打算作为“主”程序执行
如果您有一组跨越多个文件的代码,那么您可能有一个应用程序,而不是脚本
从
- 模块:
模块是包含Python定义和语句的文件。文件名是附加后缀
.py
的模块名
- 软件包:
包是一种通过使用“虚线模块名称”构造Python模块名称空间的方法
如果您阅读了该声明的文档,将提供更多详细信息,例如:
Python只有一种类型的模块对象,所有模块都是这种类型的
类型,而不管模块是用Python、C还是其他语言实现的
还有别的。帮助组织模块并提供命名
在层次结构中,Python有一个包的概念
您可以将包视为文件系统上的目录,并且
模块作为目录中的文件,但不要采用这种类比
因为包和模块不需要源于文件
系统。在本文档中,我们将使用
目录和文件的方便类比。像文件系统
目录、包按层次结构组织,包可以
它们本身包含子包以及常规模块
重要的是要记住,所有包都是模块,但不是
所有模块都是软件包。或者换句话说,包只是一个
特殊类型的模块。具体而言,任何包含
\uuuu路径\uuuu属性被视为一个包。
因此术语module
指的是一个特定的实体:它是一个类,其实例是python程序中使用的module
对象。通过类比,它还用于引用文件系统中的文件,这些实例是从该文件系统“创建”的
“脚本”一词用于指目标为执行的模块。它与“程序”或“应用程序”具有相同的含义,但通常用于描述简单的小程序(即一个最多有数百行的文件)。编写脚本需要几分钟或几个小时
术语库只是一个通用术语,用于表示一组代码,这些代码的设计目的是供许多应用程序使用。它提供了一些可由特定应用程序使用的通用功能
当一个模块/包/其他东西被“发布”时,人们通常将其称为库。库通常包含一个包或多个相关包,但它甚至可以是单个模块
库通常不提供任何特定功能,即不能“运行库”
根据上下文的不同,API可以有不同的含义。例如:
- 它可以定义一个协议,如或
- 它可以定义如何与应用程序交互(例如
- 当与库/包相关时,它只是该库为其功能(一组函数/类/常量等)提供的接口
在任何情况下,API都不是python代码。这是一个或多或少正式的描述。库:它是一个模块集合
(库包含内置模块(用C编写)+用python编写的模块)
模块:可用于构建更复杂结构的一组标准化零件或独立单元中的每一个
用非正式的语言说话,一个mod