1. 程式人生 > 其它 >Python基礎之包的匯入問題

Python基礎之包的匯入問題

python中的包其實就是一個資料夾,只是這個資料夾下一定要有一個 __init__.py 資料夾,否則就是普通的資料夾,不能叫做包,如下圖所示:

 上圖中,notify 資料夾中含有 __init__.py 檔案,所以, notify 資料夾屬於一個包,而static檔案中沒有 __init__.py 檔案,故 static 資料夾只是一個普通的資料夾。而我們平常說的匯入一個包,其實就是在匯入包裡面的 __init__.py 檔案,並不會匯入包中的其他檔案( import notify 不會匯入 email.py、msn.py、qq.py、wechat.py 等,只會匯入 __init__.py )。

如何使用包中的模組功能

如果我們想要用到 notify 包中的其他模組的功能(例如:email.py、msn.py、qq.py、wechat.py等模組的功能),就必須在 __init__.py 檔案中匯入其他模組,如下圖所示:

 只有我們在 notify 包中的 __init__.py 檔案內匯入了包內其他的功能模組,導包的時候我們才能呼叫到 notify 包中其他模組的功能,如下:

 如上面兩張圖所示,我們在 notify 包中的 __init__.py 檔案中匯入了 email.py 模組,所以我們在start.py檔案中通過 import notify 匯入包,就可以直接使用到email.py模組中的功能。如果我們沒有在 __init.py 檔案中匯入該模組,那就會報錯,如下面兩張圖所示:

 

 如上面的演示所示:我們只有在 notify 包下面的 __init.py 中匯入了包內其他的模組,才能在包被當成模組匯入的時候,呼叫到包中其他模組中的功能,否則就無法使用包內其他模組的功能