【发布时间】:2009-12-02 18:52:37
【问题描述】:
由于我更喜欢小文件,我通常为每个 Python 模块放置一个“公共”类。我将模块命名为与其包含的类相同的名称。例如,ToolSet 类将在 ToolSet.py 中定义。
在一个包中,如果另一个模块需要实例化类 ToolSet 的对象,我使用:
from ToolSet import ToolSet
...
toolSet = ToolSet()
代替:
import ToolSet
...
toolSet = ToolSet.ToolSet()
我这样做是为了减少“口吃”(我更喜欢在文件顶部而不是在我的代码中使用口吃。)
这是一个正确的成语吗?
这是一个相关的问题。在一个包中,我经常有一些我想向外界公开的类。这些我在该包的__init__.py 中导入。例如,如果ToolSet 在包UI 中并且我想公开它,我会将以下内容放入UI/__init__.py 中:
from ToolSet import ToolSet
这样,我可以从外部模块编写
import UI
...
toolSet = UI.ToolSet()
再次,这是pythonic吗?
【问题讨论】:
-
@Philippe:你可能有兴趣阅读stackoverflow.com/questions/1744258/…
-
感谢 unutbu。我的搜索没有返回这个问题。
-
为了防止两个 ToolSet 项(模块名称和类名称)之间的混淆,您最好遵循建议使用仅小写的模块名称的 pep8 指南(因此“来自工具集导入工具集”或“工具集.工具集”。