python - 如何在不破坏向后兼容的情况下将一个模块拆分为多个文件?

标签 python module

假设我有一个如下所示的 model.py 文件:

class Foo():
  ..

class Bar():
  ..

我从其他模块导入 model 然后使用 model.Foo() 每当我想提及它们时。

import model

foo = model.Foo()

随着这个文件越来越大,我想拆分每个类 分成多个文件,但如果不破坏向后兼容性 可能。

我的想法是这样打破它:

model
├── __init__.py
├── foo.py
└── bar.py

但是通过这样做,我将不得不将它们称为 model.foo.Foo()

所以我的问题是:是否可以以某种方式将其拆分为多个文件,但仍将它们称为 model.Foo()

我还应该能够在 Bar 中扩展或使用 Foo

最佳答案

当然可以,只需导入 __init__.py 中的类即可:

# in __init__.py
from model.foo import Foo
from model.bar import Bar

然后当您希望使用它们时,您可以:

>>> import model
>>> model.Bar()
<model.bar.Bar object at 0x31306d0>

>>> from model import Foo
>>> Foo()
<model.foo.Foo object at 0x31307d0>

关于python - 如何在不破坏向后兼容的情况下将一个模块拆分为多个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24100558/

相关文章:

module - 在使用 Base 的 OCaml 中,如何构造一个包含类型为 `int * int` 的元素的集合?

python - 如何测试我是否成功安装了 Python 模块?

python - 如果值计数低于阈值,则将列值映射到 'miscellaneous' - 分类列 - Pandas Dataframe

python - 使用字符串张量的 TensorFlow 字典查找

python - tensorflow 已成功安装但无法导入

python - 如何创建深度 Q 学习神经网络来解决像贪吃蛇这样的简单游戏?

python - 大量更新的脚本优化

python - 打印 python 文件的所有常量

ruby - 如何在模块定义之外访问 Module.nesting 的返回

javascript - 找不到node.js模块