公开一些Python类而不耦合到文件结构
我的项目由几个Python类组成,分为几个文件公开一些Python类而不耦合到文件结构,python,python-2.7,Python,Python 2.7,我的项目由几个Python类组成,分为几个文件 projname/ a.py # Has classes A1 and A2 b.py # Has classes B1 B2 B3 c.py # Has class C test/ doc/ bin/ 我希望能够将这些类中的一些(或全部)公开,这样,无论是从我的bindir,还是从另一个Python脚本,我都可以执行以下操作: import projname ... myvar = projname.A1() 我不知道
projname/
a.py # Has classes A1 and A2
b.py # Has classes B1 B2 B3
c.py # Has class C
test/
doc/
bin/
我希望能够将这些类中的一些(或全部)公开,这样,无论是从我的bin
dir,还是从另一个Python脚本,我都可以执行以下操作:
import projname
...
myvar = projname.A1()
我不知道该怎么做。到目前为止,我能做的最好的事情是:
import projname.a
import projname.b
import projname.c
myvar = projname.a.A1()
我不喜欢这样有两个原因:
将一个
\uuuu init\uuuu.py
放入projname/
中,内容如下:
from .a import A1, A2
from .b import B1, B2, B3
from .c import C
这会将
projname
转换为一个包,其命名空间包含\uuu init\uuuuuuuupy
包含的任何内容,在本例中是A1
、A2
、B1
、B2
、B3
和C超级!谢谢我很难理解导入和细微差异的所有组合。你能推荐一个清晰的文档或教程吗?