假设我有一个model.py看起来像这样的文件:
class Foo():
..
class Bar():
..
Run Code Online (Sandbox Code Playgroud)
从其他模块我导入model,然后model.Foo()
每当我想引用它们时使用.
import model
foo = model.Foo()
Run Code Online (Sandbox Code Playgroud)
随着这个文件越来越大,我想将每个类拆分成多个文件,但如果可能的话,不要破坏向后兼容性.
我的想法是这样打破它:
model
??? __init__.py
??? foo.py
??? bar.py
Run Code Online (Sandbox Code Playgroud)
但通过这样做,我将不得不将它们称为model.foo.Foo().
所以我的问题是:是否有可能以某种方式将它分成多个文件,但仍然将它们称为model.Foo()?
我也应该能够在Foo内部扩展或使用Bar.
msv*_*kon 13
当然可以,只需导入以下类中的类__init__.py:
# in __init__.py
from model.foo import Foo
from model.bar import Bar
Run Code Online (Sandbox Code Playgroud)
然后,当您希望使用它们时,您可以:
>>> import model
>>> model.Bar()
<model.bar.Bar object at 0x31306d0>
Run Code Online (Sandbox Code Playgroud)
要么
>>> from model import Foo
>>> Foo()
<model.foo.Foo object at 0x31307d0>
Run Code Online (Sandbox Code Playgroud)