如何在python中创建、导入和重用您自己的模块

我们将解释Python中代码可重用性的一个重要基础:模块。...

无论您是Python编程专家还是初学者,都必须熟悉import modules命令。但是,作为一个新手,您可能不知道这些模块来自何处。

How to Create, Import, and Reuse Your Own Module in Python-Featured

让我们更深入地了解这些模块的起源,以及如何创建和导入它们以供重用。

什么是代码可重用性以及为什么要这样做(code reusability and why should you do it)?

使用大多数服务器端语言时的最佳实践之一是模块化代码,使其可重用。因为Python是面向对象的,所以它是使代码重用成为可能的语言之一。

代码模块化包括编写代码来执行块中的不同指令。它用于将任务彼此分开。

当你模块化一个代码时,你给它一个唯一的名字。这个名称是它的标识,意味着下次需要使用该代码块时,只需调用它的名称,而不需要调用整个代码。

这种做法使你的工作更容易和更快地在现实生活中的项目。代码模块化还提高了执行速度,使测试更容易。本质上,它使您的代码更高效和可读。

虽然我们这里的示例不是基于面向对象编程(OOP),但在继续创建模块之前,我们必须对其进行简要的讨论。

您打算重用的代码有时可以作为单独的函数独立存在。但它也可以是类中方法的形式。这时OOP的概念开始发挥作用。

python中的面向对象程序设计

OOP是以类的形式将代码表示为独立的对象。每个对象都有自己的属性和方法。

这些属性是类的特征,而每个方法定义属性的行为。

与编写效率较低的长代码(过程编程中的惯例)不同,您的代码在OOP中变得更高效、更具体。原因是在OOP中函数和数据存储在独立的类中,而不是在过程编程中两者分开。

然后,您创建的每个类都使用一个标识。因此,当您需要一个类中的命名模块时,可以引用该类来调用它。

为了更好地理解,请看一下我们的初学者指南,了解OOP。

生成可重用函数:一个实例

接下来,让我们看看如何在另一个Python文件中重用word counter函数。本指南只关注于创建不在对象内部的可重用函数。

首先,打开计算机上任何位置的命令提示符,以启动新项目。在本例中,我们将使用word_ucount的项目名称。要执行此操作,请键入mkdir word_ucount。

接下来,使用首选的虚拟环境工具创建一个新的虚拟环境。如果您已经创建了一个,只需激活它。确保您仍在项目的目录中。

Creating project directory and making virtual environment

作为一个好的实践,要创建word counter函数,我们首先尝试找出一个计算它的原始公式。一般来说,你可以通过在一个句子的空格数上加一个来计算字数。请注意,虽然您可能不需要字数统计,但这一想法与代码可重用性之间的关系才是本文的重点。

接下来,打开项目位置的文本编辑器并创建一个新的Python文件。在本例中,文件名为文字计数器.py;确保使用正确的.py扩展名。

以下是wordcounter文件的外观:

# create a variable called word that holds some stringsword = ['how to make a word counter in python']# Next, loop through the variable to count the words in the created variableNumberOfWords = [EachWord.count(' ') + 1 for EachWord in word]print(NumberOfWords)output: [8]

既然原始代码正常工作,那么我们就通过创建一个使代码可重用的函数来将其模块化:

def CountWords(words):if words is not None:NumberOfWords = [Eachword.count(' ') + 1 for Eachword in words]return NumberOfWordsmywords = ['making a word counter in python']print(CountWords(mywords))output: [6]

就这样,我们创建了一个单词计数器模块。让我们看看如何重用它。

导入创建的模块

请记住,您之前创建了一个名为文字计数器.py. 该文件包含一个名为CountWords的函数。如果需要在新文件中使用该函数,并且不想重写整个代码或函数,则只需将该函数作为模块导入新文件中即可。

注意,在本例中,所有Python文件必须位于同一目录中。要确保是这种情况,只需在具有文字计数器.py文件。

新文件如下所示:

from wordcounter import CountWordswords = ["how to import and reuse your code in Python"]CountWords(words)output: [9]

在上面的代码片段中,CountWords是文字计数器.py文件。为了在新的Python文件中重用该函数,我们从其父文件导入它(文字计数器.py).

导入创建的模块

如果新文件与模块文件不在同一目录下怎么办?在这些情况下,必须使用绝对导入来引用模块。

为了进一步理解这一点,假设您已经在项目目录中创建了一个新文件。但是要从中导入函数的文件(在本例中是wordcounter)位于项目目录中的另一个文件夹中——我们称该文件夹为subword\u count。

要将模块从wordcounter(现在在subword\u count文件夹中)导入到新的Python文件中,您需要绝对调用它。要了解其工作原理,请在项目目录中创建一个新文件,将其命名为首选名称,然后按照下面的代码段所述导入模块:

from subword_count.wordcounter import CountWordswords = ["how to import and reuse your code in Python for files in different folders."]CountWords(words)output: [14]

在绝对导入期间,Python浏览父文件夹(在本例中是subword\u count),并定位包含感兴趣函数(CountWords)的文件或模块。

File structure to further explain the absolute import

要分解上述绝对导入的含义,subword\u count是项目目录中包含文字计数器.py文件。然后该文件包含CountWords函数。

代码可重用性在哪里工作?

模块化和重用代码是您正在运行的任何项目的最佳实践。如果编写OOP,这很可能经常执行,那么可以从模块导入类或从类调用函数。如果类在文件夹中,请将其绝对导入到新文件中。

同样的做法也适用于不在对象中的函数。根据项目的布局,您可以显式地或绝对地导入它们,就像我们上面所做的那样。

  • 发表于 2021-03-30 11:42
  • 阅读 ( 278 )
  • 分类:编程

你可能感兴趣的文章

学习python?下面是如何复制文件

...然需要采用某种方法来学习。因此,让我们通过本文了解如何使用Python复制文件。 ...

  • 发布于 2021-03-11 10:45
  • 阅读 ( 343 )

如何让python和javascript使用json进行通信

有没有想过如何在两种编程语言之间发送数据?是否尝试发送一个对象或多个数据段? ...

  • 发布于 2021-03-16 01:22
  • 阅读 ( 300 )

了解如何使用python虚拟环境

...您是一名经验丰富的Python开发人员,还是刚刚起步,学习如何设置虚拟环境对于任何Python项目都是必不可少的。和我一起讨论Python虚拟环境的所有知识。 ...

  • 发布于 2021-03-16 10:00
  • 阅读 ( 240 )

如何用python读写google工作表

... 在本文中,我将向您展示如何使用Python读写googlesheets。如果您刚刚开始Python之旅,那么以下5个学习Python的最佳网站是一个很好的起点。 ...

  • 发布于 2021-03-16 13:43
  • 阅读 ( 587 )

制作一个树莓皮gmail通知灯

在这个快速简单的Raspberry Pi项目中,您将学习如何**Gmail电子邮件通知灯。如果您有任何未读的电子邮件,Python脚本会打开指示灯。这个项目需要很少的部分,可以在一个小时内完成!当然,你可以把你的LED打扮成任何你喜欢的...

  • 发布于 2021-03-17 17:32
  • 阅读 ( 226 )

如何创建自己的私有自托管ReadItLater应用程序

... 让我们看看如何在计算机中创建Instapaper或Pocket的克隆,而不会丢失任何网页资源。 ...

  • 发布于 2021-03-19 09:29
  • 阅读 ( 291 )

如何使用click在python中创建自己的命令行程序

... 下面是如何使用它来活跃Python项目。 ...

  • 发布于 2021-03-23 13:56
  • 阅读 ( 276 )

如何在adobe lightroom classic cc中创建搜索预设

... 如何使用过滤器预设搜索特定照片 ...

  • 发布于 2021-03-24 04:15
  • 阅读 ( 202 )

如何编程树莓pi控制led灯

...以通过SSH连接到Pi,以避免额外电线的混乱。我们将介绍如何控制LED,无论您选择哪种方法。 ...

  • 发布于 2021-03-24 09:16
  • 阅读 ( 283 )

如何在python中写入或打印文件

需要打印到Python文件吗?今天,我们将了解如何轻松地开始写入文件。我们将介绍创建新文件、附加现有文件和覆盖现有文件。 ...

  • 发布于 2021-03-26 13:43
  • 阅读 ( 198 )