private
またはモジュールの洗練されたツリーを備えた大きなライブラリパッケージがあると考えてくださいpackage
—それを呼びましょうfunnylib
。funnylib.foo
エンドユーザーが内部モジュール(など)に直接触れることは望ましくないためfunnylib.bar
、代わりに外部インターフェイスを提供したいと思います—次のように:
Funnylib.d:
public import funnylib.foo;
public import funnylib.bar;
public import funnylib.baz;
エンドユーザーのようにインポートするだけimport funnylib
です。問題は、Dが同時に持つことfunnylib.d
を禁止していることです。funnylib/
__init__.py
Pythonのように、Dに「デフォルトパッケージモジュール」のようなものはありますか?いいえの場合、上記の設計を行う正しい方法は何ですか?
Update1: iternalモジュールをのようなパッケージに移動することを考えたfunnylib_private
ので、funnylib
正常にインポートされますが、funnylibが保護されたシンボルにアクセスしなくなりpackage
、ファイルレイアウトが不快になるため、保護のコストが低下します(非常に望ましくありません)。