如何在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
  • 閱讀 ( 83 )
  • 分類:程式設計

你可能感興趣的文章

如何重用舊的ram模組:您可以做的7件事

... 但你用的是哪種RAM?您如何確定目標機器是否接受這些模組? ...

  • 發佈於 2021-03-10 20:05
  • 閲讀 ( 60 )

學習python?下面是如何複製檔案

...然需要採用某種方法來學習。因此,讓我們透過本文了解如何使用Python複製檔案。 ...

  • 發佈於 2021-03-11 10:45
  • 閲讀 ( 50 )

如何用python程式設計和控制arduino

... 本文將向您展示如何使用Python程式從命令列設定一個Arduino UNO(儘管任何與Arduino相容的板都可以在這裡工作)。本教程是為Windows10編寫的,但也適用於Mac和Linux。你甚至可以使用這個工作...

  • 發佈於 2021-03-11 16:20
  • 閲讀 ( 72 )

c程式設計的特點,使其獨特(和更好)

...們被禁止,但在C++中可用。其他語言(如Java、JavaScript、python等)不提供類似的功能。 ...

  • 發佈於 2021-03-13 04:35
  • 閲讀 ( 45 )

用這些免費的線上互動式shell在瀏覽器中試用python

...過程弄得不知所措。您需要在系統上安裝Python,然後學習如何使用命令列處理程式碼,或者學習如何使用互動式shell,或者學習如何設定pythonide。 ...

  • 發佈於 2021-03-15 00:25
  • 閲讀 ( 52 )

陣列和列表在python中的工作方式

...資料型別告訴編譯器(或者在Python的情況下告訴直譯器)如何使用資料。資料結構指定可以執行的操作,並且通常實現特定的規則和規定。 ...

  • 發佈於 2021-03-15 17:19
  • 閲讀 ( 52 )

如何讓python和javascript使用json進行通訊

有沒有想過如何在兩種程式語言之間傳送資料?是否嘗試傳送一個物件或多個數據段? ...

  • 發佈於 2021-03-16 01:22
  • 閲讀 ( 70 )

瞭解如何使用python虛擬環境

...您是一名經驗豐富的Python開發人員,還是剛剛起步,學習如何設定虛擬環境對於任何Python專案都是必不可少的。和我一起討論Python虛擬環境的所有知識。 ...

  • 發佈於 2021-03-16 10:00
  • 閲讀 ( 53 )

如何用python讀寫google工作表

... 在本文中,我將向您展示如何使用Python讀寫googlesheets。如果您剛剛開始Python之旅,那麼以下5個學習Python的最佳網站是一個很好的起點。 ...

  • 發佈於 2021-03-16 13:43
  • 閲讀 ( 71 )

製作一個樹莓皮gmail通知燈

在這個快速簡單的Raspberry Pi專案中,您將學習如何**Gmail電子郵件通知燈。如果您有任何未讀的電子郵件,Python指令碼會開啟指示燈。這個專案需要很少的部分,可以在一個小時內完成!當然,你可以把你的LED打扮成任何你喜歡...

  • 發佈於 2021-03-17 17:32
  • 閲讀 ( 52 )