返回博客

在 Python 3 中编写模块:教程

在 Python 3 中编写模块:教程

介绍

Python 是全球最常用的编程语言之一。模块 是 Python 代码的关键部分。一个模块简单来说就是一个 .py 文件,在 Python 3 的语境下。这意味着您可以将任何 Python 文件称为模块。

您可以通过预先构建的库来获取这些模块。您可以查看 Python 标准库 以了解更多信息。这些是在您安装 Python 时安装到系统中的。在其他情况下,您可以使用 Python 包管理器 pip 来安装这些模块。但如果您想创建一个自定义模块该怎么办?如果是这样,那么您会很高兴地知道,您可以在 Python 中制作自己的模块。

在这篇详细的指南中,我们将概述在 Python 3 中编写和导入模块需要遵循的步骤。

前提条件

在开始之前,您需要确保已安装 Python 3 并设置了编程环境。您可以按照我们的在 Ubuntu 16.04 上安装 Python 3 并设置本地编程环境的教程 来完成安装(如果您还没有准备好)。

如何编写模块?

让我们从编写模块开始。编写模块就像撰写任何其他 Python 文件一样。一个典型的模块包含函数、类和变量的定义。随后,您可以使用该模块并将其应用到其他 Python 程序中。

为了帮助您理解,让我们看一个例子。假设我们想制作一个名为 hello.py 的文件。稍后我们也会将其导入到另一个文件中。这个过程的第一步是创建一个函数。该函数的作用是打印 Hello, World! ,像这样:

此时,运行 python hello.py 命令不会给您任何结果。这是因为我们还没有给程序任何指令。为了让它工作,我们需要导入该模块。

如何导入模块?

为了 导入您的模块 使其成为一个函数,您需要在同一个目录下创建第二个文件。我们将这个新文件命名为 main_program.py。这两个文件必须在同一个目录下的原因是我们需要引导程序在哪里找到该模块。这适用于任何非内置的全新自定义模块:

我们对模块名称使用了点号表示法来调用函数。另一种方法是使用 from...import 方法。在这里,我们将函数调用为 world() ,通过将模块导入为 from hello import world。最后,您可以运行以下命令:

该命令将向您显示以下输出:

向模块添加变量

接下来,我们将看看如何通过在模块中放入定义来向模块添加变量:

随后,您将在 print() 函数中调用该变量。我们将在 main_program.py 文件中调用它:

运行程序将显示以下输出:

向模块添加类

最后,我们将看看您如何 在您的文件中定义一个类 以供模块使用。继续我们的示例,我们将在 Octopushello.py 文件中创建一个名为 namecolor 的新类。我们还将为它分配

接下来,您必须将该类添加到 main_program.py 文件的末尾附近:

您可以使用 hello.Octopus() 命令来调用该类。它将向您显示该文件命名空间中 Octopus 类的函数和属性。因此,您可以在最后一行编写 jesse.tell_me_about_the_octopus() ,而无需调用 hello。也可以在不使用 hello 的情况下调用类的单个属性。例如,您可以简单地运行 jesse.color。运行程序时,它将显示以下输出:

使用模块实现代码

除了可以使用模块来指定定义之外,您还可以使用它们来实现代码。假设我们想要实现 world() 函数。我们将完全重写初始的 hello.py 文件:

main_program.py 文件中,我们将删除除 import 语句之外的所有内容,留下以下内容:

运行主程序文件将为您提供此输出,因为程序实现并执行了 world() 函数:

如何从另一个目录访问模块?

现在您已经知道如何创建和修改模块,您需要了解如何从另一个目录访问它们。当您需要在另一个项目上使用给定的模块时,这非常有用。有两种方法可以做到这一点,我们将在下面进行解释。

  • 追加路径

第一种方法是使用已经在使用该模块的程序文件来激活模块路径。不幸的是,这样做并不意味着该模块在整个系统中都可用。因此,它仅被视为临时解决方案。它通常在项目的开发阶段使用。

您可以通过导入 sys 模块以及您需要使用的其他重要模块来开始追加过程。我们将把它们导入到主程序文件中。您可以在 Python 标准库中找到 sys 模块。您需要它,因为它包含特定于您系统的基本参数和函数。

让我们再次考虑之前的例子。假设 hello.py 文件位于 /usr/sammy/ 路径上,而 main_program.py 文件在另一个目录中。我们将导入 hello 模块,在 main_program.py 文件中首先使用 sys 模块。接下来,我们将把 /usr/sammy/ 追加到路径中:

如果您正确设置了路径, main_program.py 文件将轻松运行而不会出错。您将获得与两个文件位于同一目录中时相同的输出。

  • Python 路径

您可以选择的另一个选项是 Python 路径。在这里,您可以将模块本身添加到 Python 检查模块和包的路径中。正如您可能推断的那样,这使得该模块在系统范围内可用,从而使其成为一个可行的永久解决方案。

为此,您需要找出 Python 在哪里寻找模块。您必须从编程环境中运行 Python 解释器,如下所示:

下一步是导入 sys 模块:

接下来,打印出系统路径:

现在,您将看到一个系统路径作为输出。至少会有一个。但是,在编程环境中可能会有几个。在列表中,找到您正在使用的环境。请记住,您可能也想将该模块添加到主系统 Python 路径中。它看起来像这样:

最后,将 hello.py 文件移动到此目录中,并按如下方式导入模块:

如果程序运行该文件而没有产生任何错误,则说明您尝试成功。通过这个过程,您将能够从系统上的任何目录访问该模块。

结论

本教程旨在帮助您熟悉 Python 模块的编写。这与您编写任何 Python .py 文件非常相似。我们首先讨论了什么是 Python 模块及其相关特性。然后,我们了解了如何在 Python 的其他编程文件中应用这些定义。最后,我们弄清楚了模块可访问性的细节。现在您已经知道如何在 Python 3 中编写模块以及如何访问它们。

要进一步 巩固您关于 Python 编程语言的知识,请参考 我们的博客 以获取更多资源:

祝您编程愉快!

author

Pranay Kapgate

作者 · CloudSigma

Preslav Dobrev 是 CloudSigma 的创意设计师,专注于通过传统和创新营销渠道打造一致的企业形象。他擅长将艺术愿景与战略营销相融合,创造具有影响力的品牌叙事。

评论

暂无评论。发表第一条评论吧。