![Python智闡11-Python模塊和包簡介](http://p2.ttnews.xyz/loading.gif)
在實際項目開發過程中,功能需求會越來越多,從而代碼也會越來越多,如果所有的代碼全部寫在一個.py文件裡面,會很糟糕,代碼可讀性也差,也不容易維護。所以,Python語言設計者,提出了模塊和包的概念。
模塊,就是每個.py文件的內容。
包,就是.py文件所在的目錄。
1、使用Python內置模塊
其實之前的相關內容文章裡面已經有體現了,比如文件目錄遍歷時引入了os模塊。
示例:引入sys.py模塊
![Python智闡11-Python模塊和包簡介](http://p2.ttnews.xyz/loading.gif)
輸出:
2、使用自定義模塊
自定義模塊時,需要注意模塊名稱不要與系統自帶的模塊命名重複
我們創建一個getpath.py文件,裡面的代碼就是之前的遍歷目錄的代碼。
然後在新建一個test.py文件,在test.py文件裡面引入getpath.py模塊中的getPath函數。
2.1 使用import 語句引入
執行即可遍歷D:Code\\log目錄
2.2 使用from......import語句引入
說明:從模塊中引入指定內容
執行即可遍歷D:Code\\log目錄
2.3 使用from......import *語句引入
說明:把一個模塊中的所有內容全部引入,一般建議少用該方式
執行即可遍歷D:Code\\log目錄
3、__name__屬性
一個模塊被了另一個程序引入,如果我們想讓模塊中的某一程序塊不執行,可以用__name__屬性來使該程序塊僅在該模塊自身運行時執行。
示例:
我們修改getpath.py文件,在最後添加一個打印
print("程序運行結束")
這樣我們在運行getpath.py時,會輸出“程序運行結束”,運行test.py時也會輸出“程序運行結束”。
如果我們想實現:運行getpath.py時,輸出,運行test.py時不輸出,可以這樣來實現:在print打印前面增加一個__name__ == "__main__"
4、包
為了避免模塊名衝突,Python又引入了按目錄來組織模塊的方法,稱為包(Package)。只要頂層的包不與其他包發生衝突,那麼包裡面的模塊都不會發生衝突。
注意:只有目錄中包含一個 __init__.py 的文件才會被認作是一個包,這個文件是必須存在的。
示例:
比如一個Code包,裡面有getpath模塊,模塊中有一個getPath函數,引入方式如下:
閱讀更多 智數分析 的文章