1

我的项目由几个 Python 类组成,分成几个文件。

projname/
    a.py # Has classes A1 and A2
    b.py # Has classes B1 B2 B3
    c.py # Has class C
test/
doc/
bin/

我希望能够将这些类中的一些(或全部)公开,这样,无论是从我的bin目录还是从另一个 Python 脚本,我都可以执行以下操作:

import projname
...
myvar = projname.A1()

我不知道该怎么做。到目前为止我能做的最好的是:

import projname.a
import projname.b
import projname.c

myvar = projname.a.A1()

我不喜欢这样有两个原因:

  1. 我不希望我的代码的客户必须知道并关心我用来分发类的文件。如果我更改文件,我不想破坏客户
  2. 我宁愿只将某些类暴露给项目外部 - 不是全部
4

1 回答 1

2

放入一个__init__.py包含projname/以下内容的内容:

from .a import A1, A2
from .b import B1, B2, B3
from .c import C

这变成projname了一个包,其名称空间包含任何内容,__init__.py在本例A1中为A2B1B2和。B3C

于 2013-07-31T18:36:22.473 回答