2017-02-14 31 views
1

我只知道兩個文件名,將得到有意義的解釋的:__init__.py__main__.py包級別還有其他什麼特殊模塊(文件)?

__init__.py:一個封裝的init文件。首次導入/導入包時執行。如果此文件存在,則該目錄被視爲一個包(還存在「名稱空間包」,它沒有init模塊)

__main__.py:包的主入口點。從命令行運行程序包時會執行此文件。 (例如:python -m PackageName

還有什麼其他文件可以存在,它們是做什麼的?

+0

我不知道是否有*目前*任何其他人,但我會認爲任何匹配'__ * __。py'的東西都是爲Python本身保留的,並且您不應該嘗試創建文件你自己的這個名字。 – chepner

+0

但是,這些dunder文件*是*的意思是要創建。包的一部分.. – Inversus

+0

也許現在沒有。我會接受這個答案的確切證據。 – Inversus

回答

4

我不認爲只有__main____init__是唯一的特殊文件的確切證據,絕對沒有看到它的任何文檔。但是,有一種體面的方式聲稱,通過在file finder for the CPython repo.

中搜索掠奪者的可能性很高,只有__init__.py的和__main__.py的; @ chepner的觀點也被唯一的其他dunder所強調:__future__.py__*__.py的其他用途確實不應該使用,因爲它可能會與某些未來的Python文件衝突。

由於我有消息來源,所有文件中的"__.*__.py" grepping沒有產生除上述三人以外的任何其他結果。

+1

讓我們[在聊天中繼續討論](http://chat.stackoverflow.com/rooms/135691/discussion-between-jim-fasarakis-hilliard-and-inversus)。 –

相關問題