首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python中的模块和库有什么区别?

Python中的模块和库有什么区别?
EN

Stack Overflow用户
提问于 2013-10-05 13:08:25
回答 4查看 114.8K关注 0票数 124

我有Java方面的背景,我是Python新手。在继续之前,我想确保正确理解Python术语。

我对模块的理解是:可以由许多脚本导入的脚本,以使阅读更容易。就像在java中一样,您有一个类,这个类可以由许多其他类导入。

我对的理解是:库包含许多模块,它们通过使用而分离。

我的问题是:库是否像包,其中有一个包,例如food,那么:

  • chocolate.py
  • sweets.py
  • biscuts.py

是否包含在food包中?

或者库使用包,所以如果我们有另一个包drink

  • milk.py
  • juice.py

包含在包裹里。library包含两个包?

另外,应用程序编程接口(API)通常包含一组库,这是在层次结构的顶部:

  1. API接口
  2. 图书馆
  3. 套餐
  4. 模块
  5. 脚本

那么API将从2-5中全部组成吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-10-05 13:40:24

来自Python教程-模块

  • 模块: 模块是包含Python定义和语句的文件。文件名是后缀为.py的模块名。
  • : 包是使用“虚线模块名称”构造Python模块命名空间的一种方法。

如果您阅读了import语句的文档,请提供更多详细信息,例如:

Python只有一种类型的模块对象,而且所有模块都是这种类型的,不管该模块是用Python、C还是其他什么实现的。为了帮助组织模块和提供命名层次结构,Python有一个包的概念。 您可以将包看作是文件系统上的目录,将模块看作目录中的文件,但是不要太直截了当,因为包和模块不需要来自文件系统。为了本文档的目的,我们将使用目录和文件的方便类比。与文件系统目录一样,包是分层组织的,包本身可能包含子包以及常规模块。 重要的是要记住,所有的包都是模块,但并不是所有的模块都是包。换句话说,包只是一种特殊的模块。具体来说,任何包含__path__ 属性的模块都被视为包.

因此,术语module指的是一个特定的实体:它是一个类,它的实例是您在python程序中使用的module对象。通过类推,它还用于引用文件系统中的文件,这些实例是从该文件系统“创建”的。

“脚本”一词用于指要执行其目标的模块。它的含义与“程序”或“应用程序”相同,但通常用于描述简单和小的程序(即一个文件最多有几百行)。写剧本需要几分钟或几个小时。

术语库只是一组代码的通用术语,设计这些代码的目的是为了让许多应用程序都能使用。它提供了一些可供特定应用程序使用的通用功能。

当模块/包/其他东西被“发布”时,人们通常把它称为库。库通常包含一个包或多个相关包,但它甚至可以是一个模块。

库通常不提供任何特定功能,即不能“运行库”。

根据上下文的不同,API可以有不同的含义。例如:

  • 它可以定义像DB API缓冲协议这样的协议。
  • 它可以定义如何与应用程序交互(例如,Python/C API)。
  • 当与库/包相关时,它只是该库为其功能提供的接口(一组函数/类/常量等)。

无论如何,API不是python代码。这是一种或多或少正式的描述。

票数 110
EN

Stack Overflow用户

发布于 2013-10-05 13:32:01

只有包和模块具有特定于Python的定义良好的含义。

  1. API接口本身并不是一组代码--它更像是一个“协议”规范,不同的部分(通常是库)如何相互通信。python中有一些值得注意的“标准”API。例如DB API
  2. 在我看来,是任何不是应用程序的东西--在python中,库是一个模块--通常带有子模块。库的范围是可变的,例如,python标准库很大(有相当多的子模块),而PyPi中有很多单一用途的库,例如for py < 2.7
  3. 套餐是公共命名空间下的python模块的集合。在实践中,一个是通过将多个python模块放在一个带有特殊__init__.py模块(文件)的目录中创建的。
  4. 模块是要导入的python代码的单个文件。这有点简化,因为在实践中,有相当多的模块是检测它们何时作为脚本运行,并且在这种情况下会做一些特殊的事情。
  5. 脚本是一个单一的python代码文件,它将作为“主”程序执行。
  6. 如果您有一组跨越多个文件的代码,那么您可能有一个应用程序而不是脚本。
票数 48
EN

Stack Overflow用户

发布于 2018-09-05 16:52:04

库: --它是一个模块集合。

(库中包含内置的模块(用C编写)+用python编写的模块)。

模块:可用于构造更复杂结构的一组标准化部件或独立单元中的每一个

在非正式语言中,模块是一组代码行,用于特定目的,并可用于其他程序中,以避免干(D on Repeat Y of )作为一个团队,并专注于主要需求。来源

API是其他应用程序无需直接访问就可以与库交互的接口。

基本上是一个包含文件的目录。

脚本是指单个文件中的一系列命令。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19198166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档