Python智闡11-Python模塊和包簡介

Python智闡11-Python模塊和包簡介

在實際項目開發過程中,功能需求會越來越多,從而代碼也會越來越多,如果所有的代碼全部寫在一個.py文件裡面,會很糟糕,代碼可讀性也差,也不容易維護。所以,Python語言設計者,提出了模塊和包的概念。

模塊,就是每個.py文件的內容。

包,就是.py文件所在的目錄。

1、使用Python內置模塊

其實之前的相關內容文章裡面已經有體現了,比如文件目錄遍歷時引入了os模塊。

示例:引入sys.py模塊

Python智闡11-Python模塊和包簡介

輸出:

Python智闡11-Python模塊和包簡介


2、使用自定義模塊

自定義模塊時,需要注意模塊名稱不要與系統自帶的模塊命名重複

我們創建一個getpath.py文件,裡面的代碼就是之前的遍歷目錄的代碼。

Python智闡11-Python模塊和包簡介

然後在新建一個test.py文件,在test.py文件裡面引入getpath.py模塊中的getPath函數。

2.1 使用import 語句引入

Python智闡11-Python模塊和包簡介

執行即可遍歷D:Code\\log目錄


2.2 使用from......import語句引入

說明:從模塊中引入指定內容

Python智闡11-Python模塊和包簡介

執行即可遍歷D:Code\\log目錄


2.3 使用from......import *語句引入

說明:把一個模塊中的所有內容全部引入,一般建議少用該方式

Python智闡11-Python模塊和包簡介

執行即可遍歷D:Code\\log目錄


3、__name__屬性

一個模塊被了另一個程序引入,如果我們想讓模塊中的某一程序塊不執行,可以用__name__屬性來使該程序塊僅在該模塊自身運行時執行。

示例:

我們修改getpath.py文件,在最後添加一個打印

print("程序運行結束")

這樣我們在運行getpath.py時,會輸出“程序運行結束”,運行test.py時也會輸出“程序運行結束”。

如果我們想實現:運行getpath.py時,輸出,運行test.py時不輸出,可以這樣來實現:在print打印前面增加一個__name__ == "__main__"

Python智闡11-Python模塊和包簡介


4、包

為了避免模塊名衝突,Python又引入了按目錄來組織模塊的方法,稱為包(Package)。只要頂層的包不與其他包發生衝突,那麼包裡面的模塊都不會發生衝突。

注意:只有目錄中包含一個 __init__.py 的文件才會被認作是一個包,這個文件是必須存在的。

示例:

比如一個Code包,裡面有getpath模塊,模塊中有一個getPath函數,引入方式如下:

Python智闡11-Python模塊和包簡介


分享到:


相關文章: