|
|
1
50
我用下划线作为私有模块的前缀,以向用户传达意图。在你的情况下,这将是
这与PEP8建议在用Python模块包装C-extension模块时使用前导下划线命名C-extension模块的精神相同(但并不完全类似);即。,
|
|
|
2
13
我确定的解决方案是创建一个子包“private”,并将我希望隐藏的所有模块放在其中。这样他们就躲藏起来,离开了
在我看来,这也不是不和谐的。 |
|
|
3
9
虽然没有显式的私有关键字,但是有一个约定,即让私有函数以一个下划线开头,但是一个双前导下划线将使它成为一个下划线,这样其他人就无法从模块外部轻松调用函数。请参见下面的 PEP 8
要使整个模块私有化,不要包含它
|
|
4
2
在这种情况下需要注意的一点是间接导入。如果在
然后用户可以
别再聪明了。我建议导入为
至于实际的目录结构,您甚至可以将Jeremy的答案扩展为
|
|
5
1
如果有人真的需要子类化或访问mod\u b,为什么要阻止他/她这样做?您可以在您的文档和模块中始终提供一个首选API,您不应该直接访问它,而是使用mypack。 |
|
|
Konstantin · 模块重新加载未按预期工作 8 年前 |
|
|
Carpetfizz · 无法从其他目录导入python文件 8 年前 |
|
|
Frank Vel · Python模块无法识别同一文件夹中的文件 8 年前 |
|
|
sonicsword · 使用单独的模块分配变量?[已关闭] 8 年前 |