假设我有一个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()
?
我还应该能够在Foo
内扩展或使用Bar
。
答案 0 :(得分:12)
当然可以,只需导入__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>