python中的模塊詳解

2021-01-07 程式設計師編程學習

概念

python中的模塊是什麼?簡而言之,在python中,一個文件(以「.py」為後綴名的文件)就叫做一個模塊,每一個模塊在python裡都被看做是一個獨立的文件。模塊可以被項目中的其他模塊、一些腳本甚至是交互式的解析器所使用,它可以被其他程序引用,從而使用該模塊裡的函數等功能,使用Python中的標準庫也是採用這種方法。

分類

在Python中模塊分為以下幾種:

系統內置模塊,例如:sys、time、json模塊等等;自定義模塊,自定義模塊是自己寫的模塊,對某段邏輯或某些函數進行封裝後供其他函數調用。注意:自定義模塊的命名一定不能和系統內置的模塊重名了,否則將不能再導入系統的內置模塊了。例如:自定義了一個sys.py模塊後,再想使用系統的sys模塊是不能使用的;第三方的開源模塊:這部分模塊可以通過pip install進行安裝,有開源的代碼;

使用模塊

我們先來看一個例子,導入系統內置的sys模塊:

在第二行處,寫了這樣一句話:「import sys」,表示使用系統自帶的sys模塊,因此,在下面的代碼裡,就可以使用sys模塊裡的函數:「sys.argv」,它的作用是返回命令行的參數列表。

使用關鍵詞「import」,後面跟具體的模塊名稱,則可以導入某一個模塊;同一個模塊不管你執行了多少次「import」,只會被導入一次,以防止模塊一遍又一遍的被執行;「import」應該被放在代碼的頂端;

接下來我們導入一個自定義的模塊,首先我們定義一個模塊,並且把這個模塊的名字叫做「myprint.py」,如下圖所示:

這個模塊裡定義了一個函數,列印輸入的參數,並且在後面再加上一行自定義列印的文字。將這個文件保存,接下來讓我們看調用方法:

在調用的地方,同樣只需要輸入「import myprint」,然後就可以在任意地方調用了,調用的方法也是一樣,用該模塊的名字.函數名稱(參數)就能達到調用目的。

from...import

剛才我們提到了引入一個模塊使用「import」關鍵詞,它將把這個模塊整個引入進來,那麼,from...import則是引入一個指定部分到當前的命名空間中來,例如我們有如下圖所示的一個模塊:

上面的模塊定義了兩個函數,分別是「print_myself」和「print_other」,現在我們用from...import使用這個模塊,並且只想使用第一個函數,如下圖:

從上面的兩個例子,我們可以看到,「import」和「from...import」的作用都是引入一個模塊,它們的區別在於:

「import」是引入一個完整的模塊,「from...import」是引入模塊中的一個或多個指定部分;「import」引入模塊後,如果需要使用模塊裡的函數方法,則需要加上模塊的限定名字,「from...import」則不用加模塊的限定名字,直接使用其函數方法;值得一提的是,還有一種引入模塊的方法:「from...import*」,舉例如下圖:

請看,剛才運行時會出錯的地方「print_other」不會出錯了!但是,絕大多數編程人員不會這麼寫,因為它一次性的把一個模塊裡的所有函數、變量都一次性的引入進來了(單下劃線「_」開頭的名字不在此列),有可能會覆蓋現有代碼的定義;

小結

Python中模塊化的好處多多,總結起來,有如下優點:

提高了代碼的可維護性;一個模塊編寫完畢之後,其他模塊直接調用,不用再從零開始寫代碼了,節約了工作時間;避免函數名稱和變量名稱重複,在不同的模塊中可以存在相同名字的函數名和變量名,但是,切記,不要和系統內置的模塊名稱重複;

相關焦點

  • 【python】os 模塊使用筆記
    然後,通過作業系統提供的接口從這個文件對象中讀取數據,或者把數據寫入這個文件對象。)os模塊一般有以下功能:複製文件的函數居然在os模塊中不存在!原因是複製文件並非由作業系統提供的系統調用。理論上講,我們通過上一節的讀寫文件可以完成文件複製,只不過要多寫很多代碼。
  • Python3 pickle模塊的使用詳解
    pickle模塊特點1、只能在python中使用,只支持python的基本數據類型。2、可以處理複雜的序列化語法。
  • python中的Requests模塊
    講解對象:python中的Requests模塊作者:融水公子 rsgz介紹:1 Requests 是一個第三方 Python 模塊2 Requests 唯一的一個非轉基因的apt-get update  #更新軟體列表2 安裝pip3執行命令:sudo apt-get install python3
  • python中logging模塊詳解
    為什麼需要logging模塊用python寫代碼的時候,想看哪裡的輸出直接print就可以了。
  • Python中正則表達式模塊詳解
    用來處理字符串,對字符串進行檢索和替換,另外正則在python爬蟲的應用也是相當廣泛!
  • netcdf4-python 模塊詳解
    python中提供了多種方式來處理netcdf文件,這裡主要講一下常用的 netcdf4-python 模塊。
  • 淺談 Python 中的模塊
    當解釋器遇到 import 語句時,如果模塊在當前的搜索路徑中就會被導入,多次導入一個模塊時,只有最後一次生效,這樣可以防止導入模塊被多次執行。搜索路徑存儲在 sys 模塊中的 path 變量中,我們可以通過以下代碼查看。
  • python中常用模塊詳解
    Python中的內置模塊實現)。有時,我們甚至可以將這些信息存儲成文本格式,但這樣有點low……其實,對於序列化處理(稍後會講),很多人腦海中並沒有很準確的概念,比如什麼時候該用哪種模塊?這些模塊有何優缺點?
  • 萬字長文詳解Python正則表達式及re模塊
    零寬斷言就跟它的名字一樣,是一種零寬度的匹配,它匹配到的內容不會保存到匹配結果中去,最終匹配結果只是一個位置而已。作用是給指定位置添加一個限定條件,用來規定此位置之前或者之後的字符必須滿足限定條件才能使正則中的字表達式匹配成功。(?
  • python之OS模塊39個常用函數詳解
    作者:小伍哥 來源:AI入門學習os,語義作業系統,所以該模塊就是作業系統相關的功能了,用於處理文件和目錄這些我們日常手動需要做的操作,比如新建文件夾、獲取文件列表、刪除某個文件、獲取文件大小、重命名文件、獲取文件修改時間等,該模塊就包含了大量的作業系統操作函數,精選常用的進行解析,希望對大家有所幫助。
  • Python 中的 Subprocess 模塊
    翻譯丨寫樂原文丨pythonforbeginners以前我一直用os.system()處理一些系統管理任務
  • Python中json模塊的使用介紹
    # json:數據交換用到json文件,json是特殊的字符串,一種輕量級的數據交換格式# json 本質就是字符串,區別在於json裡要使用雙引號表示字符串# 在js語言中,一切都是對象,因此,任何支持的類型都可以通過json 來表示,例如字符串、數字、對象、數組等# 在python中,有專門處理json格式的模塊:json模塊 和 picle模塊# Json 模塊提供了四個方法:dumps、dump、loads、load# pickle 模塊也提供了四個功能:dumps、dump、loads、load# 序列化:
  • python的模塊和序列
    前言概要本章節主要講述python中的模塊和序列的概念以及如何使用模塊和序列化方面的知識。模塊的概念在python中有個關鍵詞是import,代表的是導入、加載的意思。>包含一組模塊的包(package)在一些常見的場景裡,我們所描述的模塊 其實就是一個包含python定義和聲明的py文件,文件名就是模塊名字加上.py的後綴。
  • 詳解Python中的import的用法
    import語句用來導入其他python文件(稱為模塊module),使用該模塊裡定義的類、方法或者變量,從而達到代碼復用的目的。為了方便說明,我們用實例來說明import的用法,讀者朋友可以跟著嘗試(嘗試時建議使用python3,python2和python3在import的表現有差異,之後會提到)。
  • Python之os模塊
    Python部落(python.freelycode.com)組織翻譯,禁止轉載,歡迎轉發。
  • 第39天: Python itertools 模塊
    簡介 在 Python 中,迭代器是一種非常好用的數據結構,其最大的優勢就是延遲生成,按需使用,從而大大提高程序的運行效率。而 itertools 作為 Python 的內置模塊,就為我們提供了一套非常有用的用於操作可迭代對象的函數。
  • 第二篇:介紹Python中關鍵字、變量、注釋、模塊
    關鍵字 定義:python語言本身定義好的有特殊含義的代碼元素。在python中只有33個關鍵字,其中False、True和None的首字母大寫,其他關鍵字全部小寫。
  • Python運維中常用的庫和模塊
    2、IPy(http://github.com/haypo/python-ipy),輔助IP規劃。3、dnspython(http://dnspython.org)Python實現的一個DNS工具包。4、difflib:difflib作為Python的標準模塊,無需安裝,作用是對比文本之間的差異。
  • Python之re模塊方法詳解(正則表達式)
    學習re模塊首先要對python正則表達式要了解,正則表達式是一個特殊的字符序列,它能幫助你方便的檢查一個字符串是否與某種模式匹配
  • Python中__init__.py文件的作用詳解
    這樣我們可以在__init__.py文件中批量導入我們所需要的模塊,而不再需要一個一個的導入。__init__.py中還有一個重要的變量,__all__, 它用來將模塊全部導入。當導入模塊時,解釋器按照sys.path列表中的目錄順序來查找導入文件。