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

时间:2014-06-07 18:55:38

标签: 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()

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

1 个答案:

答案 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>