python - 在包中定义类

标签 python class module package

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

我希望我的目录看起来像这样:

recursor/
    __init__.py
    RecursionException.py
    RecursionResult.py
    Recursor.py

所以我可以将我的类称为 recursor.Recursorrecursor.RecursionExceptionrecursor.RecursionResult。这在 Python 中可行或推荐吗?

最佳答案

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

from RecursionException import RecursionException
from RecursionResult import RecursionResult
from Recursor import Recursor

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

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

关于python - 在包中定义类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3024472/

相关文章:

c++ - 调整 C++ 类动态数组的大小

python - 从装饰器内部获取路由值

python - 在 Python 中创建空格分隔的文件

java - Jtabbedpane 使用多个类

javascript - 找不到模块express

TypeScript:如何在命名空间中使用内部接口(interface)

java - Minecraft 模组出现 Missingtexture 错误

python - 循环列表时的累积加法

python - 如何要求 sympy 不要将 bm 翻译成 boldsymbol?

c# - Foo.class 是做什么的?