無論您是Python程式設計專家還是初學者,都必須熟悉import modules命令。但是,作為一個新手,您可能不知道這些模組來自何處。
讓我們更深入地瞭解這些模組的起源,以及如何建立和匯入它們以供重用。
使用大多數伺服器端語言時的最佳實踐之一是模組化程式碼,使其可重用。因為Python是面向物件的,所以它是使程式碼重用成為可能的語言之一。
程式碼模組化包括編寫程式碼來執行塊中的不同指令。它用於將任務彼此分開。
當你模組化一個程式碼時,你給它一個唯一的名字。這個名稱是它的標識,意味著下次需要使用該程式碼塊時,只需呼叫它的名稱,而不需要呼叫整個程式碼。
這種做法使你的工作更容易和更快地在現實生活中的專案。程式碼模組化還提高了執行速度,使測試更容易。本質上,它使您的程式碼更高效和可讀。
雖然我們這裡的示例不是基於面向物件程式設計(OOP),但在繼續建立模組之前,我們必須對其進行簡要的討論。
您打算重用的程式碼有時可以作為單獨的函式獨立存在。但它也可以是類中方法的形式。這時OOP的概念開始發揮作用。
OOP是以類的形式將程式碼表示為獨立的物件。每個物件都有自己的屬性和方法。
這些屬性是類的特徵,而每個方法定義屬性的行為。
與編寫效率較低的長程式碼(過程程式設計中的慣例)不同,您的程式碼在OOP中變得更高效、更具體。原因是在OOP中函式和資料儲存在獨立的類中,而不是在過程程式設計中兩者分開。
然後,您建立的每個類都使用一個標識。因此,當您需要一個類中的命名模組時,可以引用該類來呼叫它。
為了更好地理解,請看一下我們的初學者指南,瞭解OOP。
接下來,讓我們看看如何在另一個Python檔案中重用word counter函式。本指南只關注於建立不在物件內部的可重用函式。
首先,開啟計算機上任何位置的命令提示符,以啟動新專案。在本例中,我們將使用word_ucount的專案名稱。要執行此操作,請鍵入mkdir word_ucount。
接下來,使用首選的虛擬環境工具建立一個新的虛擬環境。如果您已經建立了一個,只需啟用它。確保您仍在專案的目錄中。
作為一個好的實踐,要建立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)的檔案或模組。
要分解上述絕對匯入的含義,subword\u count是專案目錄中包含文字計數器.py檔案。然後該檔案包含CountWords函式。
模組化和重用程式碼是您正在執行的任何專案的最佳實踐。如果編寫OOP,這很可能經常執行,那麼可以從模組匯入類或從類呼叫函式。如果類在資料夾中,請將其絕對匯入到新檔案中。
同樣的做法也適用於不在物件中的函式。根據專案的佈局,您可以顯式地或絕對地匯入它們,就像我們上面所做的那樣。
... 本文將向您展示如何使用Python程式從命令列設定一個Arduino UNO(儘管任何與Arduino相容的板都可以在這裡工作)。本教程是為Windows10編寫的,但也適用於Mac和Linux。你甚至可以使用這個工作...
...們被禁止,但在C++中可用。其他語言(如Java、JavaScript、python等)不提供類似的功能。 ...
...過程弄得不知所措。您需要在系統上安裝Python,然後學習如何使用命令列處理程式碼,或者學習如何使用互動式shell,或者學習如何設定pythonide。 ...
...資料型別告訴編譯器(或者在Python的情況下告訴直譯器)如何使用資料。資料結構指定可以執行的操作,並且通常實現特定的規則和規定。 ...
有沒有想過如何在兩種程式語言之間傳送資料?是否嘗試傳送一個物件或多個數據段? ...
...您是一名經驗豐富的Python開發人員,還是剛剛起步,學習如何設定虛擬環境對於任何Python專案都是必不可少的。和我一起討論Python虛擬環境的所有知識。 ...
... 在本文中,我將向您展示如何使用Python讀寫googlesheets。如果您剛剛開始Python之旅,那麼以下5個學習Python的最佳網站是一個很好的起點。 ...
在這個快速簡單的Raspberry Pi專案中,您將學習如何**Gmail電子郵件通知燈。如果您有任何未讀的電子郵件,Python指令碼會開啟指示燈。這個專案需要很少的部分,可以在一個小時內完成!當然,你可以把你的LED打扮成任何你喜歡...