実装が(保守性のために)2つの内部サブモジュールに分割されているPythonパッケージがあります。ただし、ユーザーの観点からは、パッケージは1つのユニットとして表示されるはずなので、パッケージの__init__.py
両方のサブモジュールはimport *
、次のようにでインポートされます。
# filesystem layout:
mypkg/
__init__.py
subA.py # defines class A
subB.py # defines class B
と
# __init__.py
from .subA import *
from .subB import *
これは、パッケージ機能の観点から意図したとおりに機能します。
>>> import mypkg
>>> a = mypkg.A() # works
>>> b = mypkg.B() # works
これらのクラスのインラインヘルプを直接検索する場合は、すべてが良好です。
>>> help(mypkg.A) # works
>>> help(mypkg.subA.A) # also works
問題は、トップレベルパッケージのヘルプを検索するだけの場合です。
>>> help(mypkg)
その場合、サブモジュールのクラスと関数は「自発的に」表示されません(ただし、それらの変数はDATA
セクションに表示されます)。これは予想される/正しい動作ですか?それを回避して、ユーザーが実装/保守の便宜のためだけに存在するサブモジュールについて知る必要がないようにする方法はありますか?