Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的模块和库有什么区别?_Python_Module_Package - Fatal编程技术网

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

Python中的模块和库有什么区别?,python,module,package,Python,Module,Package,我有Java的背景,对Python还不熟悉。在继续之前,我想确保正确理解Python术语 我对模块的理解是:一个可以由许多脚本导入的脚本,以便于阅读。就像在java中一样,您有一个类,该类可以由许多其他类导入 我对库的理解是:库包含许多模块,这些模块按其用途分开 我的问题是:库是否像包一样,你有一个包,例如称为食品,然后: 巧克力 甜食 比斯切茨 是否包含在食品包装中 或者图书馆使用软件包,所以如果我们有另一个软件包饮料: 牛奶 果汁 包含在包裹中。库包含两个包 此外,应用程序编程接口(

我有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