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

发布于 2021-01-29 17:07:52

我具有Java的背景知识,并且是Python的新手。在继续之前,我想确保我正确理解Python术语。

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

我对一个 库的 理解是:一个库包含许多 模块 ,这些 模块 按其用途分开。

我的问题是:库是否像软件包,您有一个名为的软件包food,然后:

  • Chocolate.py
  • sweets.py
  • biscuts.py

food包装中包含?

还是图书馆使用软件包,所以如果我们有另一个软件包drink

  • 牛奶
  • juice.py

包含在包装中。在library包含两个包?

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

  1. API
  2. 图书馆
  3. 模组
  4. 脚本

因此,API将由2-5构成吗?

关注者
0
被浏览
199
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    Python教程-模块

    • 模块

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

    包是通过使用“点分模块名称”来构造Python模块名称空间的一种方式。

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

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

    您可以将包视为文件系统上的目录,而将模块视为目录中的文件,但是不要从字面上看这样的类比,因为包和模块不需要源自文件系统。出于本文档的目的,我们将使用目录和文件的这种便利类比。像文件系统目录一样,程序包是按层次结构组织的,并且程序包本身可能包含子程序包以及常规模块。

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

    因此,该术语module指的是一个特定的实体:这是一个类,其实例是module您在python程序中使用的对象。类似地,它也用于引用文件系统中创建这些实例的文件。

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

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

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

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

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

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

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



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看