我有一個包mypack
,其中包含模塊mod_a
和mod_b
。我打算在包本身,mod_a
自由地輸入:Python:包中的'Private'模塊
import mypack
import mypack.mod_a
不過,我想繼續mod_b
獨家使用的mypack
。這是因爲它僅僅是爲了組織後者的內部代碼而存在。
我的第一個問題是,在Python編程中有一個公認的做法是擁有這樣的「私有」模塊嗎?
如果是,我的第二個問題是,向客戶表達這種意向的最佳方式是什麼?我是否在名稱前加下劃線(即_mod_b
)?或者宣佈一個子包private
並將所有這些模塊放在那裏是一個好主意?
我將在近6年後發佈這篇文章,提供與您相同的問題和動機。私人子包方法仍然是你採取的方法還是你從那以後嘗試了其他方法? – 2016-06-29 21:59:10
是的。我仍然在使用這種方法。還沒有找到更好的選擇。 – 2016-07-07 05:45:46
感謝您的更新,並首先提出了這種方法。我在「private」子包名稱前添加一個'z_',以便它在IDE代碼完成下拉菜單中最後顯示。我在子包的'__init __。py'中使用相對導入來僅公開「公共」函數。在PyCharm和Jupyter中,爲了保持內部模塊的名稱不超出下拉列表,每個模塊必須具有與模塊名稱相同的函數,並且必須將該函數導入到__init __。py中。你可能已經知道所有這些,但如果不是這樣的話。如果你想讓我擴大爲答案,請讓我知道。 – 2016-07-07 15:16:39