在包中定义类

Naf*_*Kay 11 python module packages class

我正在学习Python,我一直在玩包.我想知道在包中定义类的最佳方法.似乎在包中定义类的唯一方法是在该包中定义它们__init__.py.来自Java,我有点想为我的类定义单个文件.这是推荐的做法吗?

我想让我的目录看起来像这样:

recursor/
    __init__.py
    RecursionException.py
    RecursionResult.py
    Recursor.py
Run Code Online (Sandbox Code Playgroud)

所以,我可以请参阅我的班为recursor.Recursor,recursor.RecursionExceptionrecursor.RecursionResult.这是可行的还是推荐的Python?

ʇsә*_*ɹoɈ 9

继续,在单独的模块中定义您的类.然后做__init__.py这样的事情:

from RecursionException import RecursionException
from RecursionResult import RecursionResult
from Recursor import Recursor
Run Code Online (Sandbox Code Playgroud)

这会将每个类导入到包的根命名空间中,因此调用代码可以引用recursor.Recursor而不是recursor.Recursor.Recursor.

我觉得有必要在这里回应一些其他的评论:Python不是Java.我建议不要在阳光下为每个类创建一个新模块,而是将密切相关的类分组到一个模块中.以这种方式理解您的代码更容易,并且调用代码不需要大量的导入.

  • 虽然`recursor.Recursor.Recursor`确实有一定的魅力. (5认同)