将文件夹变成Python模块
我在Python里有一个模块,最近变得有点复杂。我想把它拆分成几个小文件,这样管理代码会更方便,但我希望使用起来感觉上没有任何变化。举个例子,假设我在一个叫c.py
的文件里有两个类C1
和C2
。我想创建一个文件夹结构,
c/
__init__.py
c1.py <--- class C1 in here
c2.py <--- class C2 in here
这样我就可以用以下两种方式来使用这些代码
import c
c1 = c.C1()
c2 = c.C2()
还有
from c import *
c1 = C1()
c2 = C2()
我已经完成了大部分工作;如果我把__init__.py
定义成这样,
from c1 import *
from c2 import *
__all__ == []
那么我就可以用第一种方式来使用c
。我该如何以第二种方式使用c
呢?(最好是不需要在__all__
里列出所有的C1
和C2
)
1 个回答
0
如果你在 __init__.py
文件中跳过 __all__
这个声明,你就可以同时使用这两种方法。