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()

次の 2 つの理由から、私はそれが好きではありません。

  1. 私のコードのクライアントが、私がクラスを配布するために使用したファイルを知り、気にする必要はありません。ファイルを変更してもクライアントを壊したくない
  2. すべてではなく、特定のクラスのみをプロジェクトの外部に公開したい
4

1 に答える 1

2

次の内容でa__init__.pyを挿入します。projname/

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

これは、名前空間に、、、、および を含むprojnameパッケージになります。__init__.pyA1A2B1B2B3C

于 2013-07-31T18:36:22.473 に答える