我有一个包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