Python中__init__.py詳解


轉載至:https://mp.weixin.qq.com/s/PksqW03ZtlAiMhsTiH1lBg      

剛學python 同學,一定會留意到,當你每創建一個包的時候,下面就會自動給你創建一個__init__.py文件,那這個文件到底有啥用呢?接下來就帶大家一起來認識一下。

  

        在平常大家導包的時候,是不是一般這樣子import xxx.xxx.xxx 或者from xxx.xxx  import  xxx, 現在就有一個疑問來了,若是我現在想批量導入一些模塊呢?

        肯定有同學就說了,一個一個導入不就行了嗎?你這么說,其實也沒錯,還有其他的辦法嗎?

        這個時候__init__.py文件就用上了派場,因為在導包的時候,其實相當於是導入一個__init__.py文件,所以我們是不是在這個文件中配置好我們要導入的模塊,就可以實現批量導入了呢?

看實例:

以上面的目錄結構為例,我們在operConf下的__init__.py文件加入:

from operConf import confManage
from operConf import globalsManage
import os

再創建一個模塊,把operConf這個包導進來,並且把我們打印一下我們引用模塊的信息:

 執行結果:

 有沒有發現這下就可以將我們所需要的模塊全部導進來了?

        其實在__init__.py文件中,有一個很重要的變量__all__,我們其實只要配置了__all__,就可以在其他模塊中直接from 包名 import * ,將配置在__all__列表中的所有模塊全部一次性導入進來。

就以上面的為例,我們再優化一下:

我們在operConf下的__init__.py文件中優化為:

from operConf import confManage
from operConf import globalsManage
import os

__all__ = ["confManage", "globalsManage", "os"]

導入包並打印導入模塊信息:

 再執行一下:

難道就這些嗎?

不,當前你可以在__init__.py文件中導入模塊中類、也可以在__init__.py文件中寫入一些函數進行導入(不建議這樣用)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM