Python學習筆記|Python之特殊檔案

Tester_hope發表於2018-12-21

Python之特殊檔案__init__.py

1.為什麼__init__.py特殊

__init__.py檔案定義了包的屬性和方法。其實它可以什麼也不定義;可以只是一個空檔案,但是必須存在

如果 __init__.py不存在,這個目錄就僅僅是一個目錄,而不是一個包,它就不能被匯入或者包含其它的模組和巢狀包。

2.如何使用__init__.py

  • __init__.py為空檔案

__init__.py控制著包的匯入行為。如果__init__.py檔案為空的話,僅僅是把這個包匯入,不會匯入包中的模組

  • __init__.py中寫入__all__

__init__.py中的__all__變數,是用來控制from 包名 import *時匯入的模組
模組中使用__all__屬性,則表示只匯入__all__中指定的屬性,因此,使用__all__可以隱藏不想被import的預設值

Tips:
__all__變數是一個由string元素組成的list變數。 它定義了當我們使用 from <module> import *匯入某個模組的時候能匯出的符號(這裡代表變數,函式,類等)

  • __init__.py中寫入其他內容

可以在__init__.py中編寫其他內容,在匯入時,這些編寫的內容就會被執行
可以在__init__.py中向sys.path新增當前被呼叫模組路徑。

3.__init__.py作用

目錄中只有包含了叫做__init__.py的檔案,才能被程式認作是包,模組才能被匯入成功

相關文章