什么是Python中的模块和库之间的区别?

jok*_*ker 62 python

我有Java背景,我是Python的新手.在开始之前,我想确保我正确理解Python术语.

我对模块的理解是:一个可以被许多脚本导入的脚本,使阅读更容易.就像在java中一样,你有一个类,并且该类可以被许多其他类导入.

我对库的理解是:库包含许多模块,这些模块由其使用分开.

我的问题是:库是否像包一样,你有一个包,例如调用food,然后:

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

food包装中包含哪些内容?

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

  • milk.py
  • juice.py

包含在包中.在library包含两个包?

此外,应用程序编程接口(API)通常包含一组库,它位于层次结构的顶部:

  1. API
  2. 图书馆
  3. 脚本

那么API将包含2-5的所有内容?

Bak*_*riu 58

来自Python教程 - 模块

  • 模块:

    模块是包含Python定义和语句的文件.文件名是.py附加后缀的模块名称.

  • 套餐:

    包是一种使用"点模块名称"构造Python模块命名空间的方法.

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

Python只有一种类型的模块对象,所有模块都属于这种类型,无论模块是用Python,C还是其他方式实现.为了帮助组织模块并提供命名层次结构,Python有一个包的概念.

你可以把包作为一个文件系统和模块的目录中的文件的目录,但由于封装和模块不需要从文件系统起源不要把这个比喻望文生义.出于本文档的目的,我们将使用这种方便的目录和文件类比.如文件系统目录,包分层组织,并包可能本身包含的子包,以及定期的模块.

重要的是要记住所有包都是模块,但并非所有模块都是包.换句话说,包只是一种特殊的模块.具体而言,包含__path__属性的任何模块都 被视为包.

因此,长期module是指特定的实体:它是一个类,其实例是module您在Python程序中使用的对象.它也可以用来,通过类比,指在从这些实例"创建"文件系统中的文件.

术语脚本用于指代其目标是执行的模块.它的含义是"程序"或"程序"相同,但它通常用来形容简单的小程序(即至多几百行的一个文件).编写脚本需要几分钟或几个小时.

术语只是一堆代码的通用术语,其目的是为了被许多应用程序使用.它提供了一些可供特定应用程序使用的通用功能.

当模块/包/其他东西被"发布"时,人们经常将其称为库.库通常包含一个包或多个相关的包,但它甚至可以是一个单独的模块.

库通常不提供任何特定功能,即您不能"运行库".

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

在任何情况下,API 都不是python代码.这是一种或多或少正式的描述.


Kim*_*ais 28

只有模块具有明确定义的Python特定含义.

  1. 一个API不是代码的集合本身 -它更像一个"协议"说明书中的各个部件(通常库)如何与彼此通信.python中有一些值得注意的"标准"API.例如DB API

  2. 在我看来,一个是什么,这是不是一个应用程序 -在Python中,图书馆是一个模块 -通常与子模块.库的范围相当变量-例如Python标准库是巨大的(有相当多的子模块),同时也有很多单个目的库中的PyPI,例如的反向移植collections.OrderedDict为PY <2.7

  3. 是python模块在一个共同的命名空间的集合.在实践中,通过将多个python模块放在具有特殊__init__.py模块(文件)的目录中来创建一个.

  4. 模块是其旨在被Python代码的单个文件导入.这有点简化,因为在实践中,有很多模块会检测它们何时作为脚本运行并在这种情况下执行一些特殊操作.

  5. 脚本是,是为了将Python代码的单个文件执行作为"主"程序.

  6. 如果您有一组跨多个文件的代码,您可能有一个应用程序而不是脚本.


Pre*_*raj 5

库:它是模块的集合。

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

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

在非正式的语言发言,A模块被设定,它被用于一个特定的目的,并且可以在其他程序中使用,因为它是行的代码,以避免DRY(d on't ř EPEAT Ÿ我们自己)作为一个团队和聚焦上主要要求。来源

API是其他应用程序与您的库进行交互而无需直接访问的接口。

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

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