__all__モジュールのプロパティを介してモジュールで定義された関数を公開するために使用する非常に単純なデコレータ関数があります。パッケージ内の複数のモジュールに使用するため、パッケージの__init__.py.
モジュール(またはパッケージ)の を参照するため、定義内から使用できないため、現在次のようにしてい__all__ます。__all____init__.py
def expose ( fn ):
fn.__globals__['__all__'].append( fn.__name__ )
これは完全にうまくいくようです。ただし__global__、特にそのプロパティが文書化されていないように見えるため、プロパティを使用することが理想的な方法であるかどうかはわかりません(少なくともドキュメントには何も見つかりませんでした)。
そのためにうまく使用__globals__していますか、それともこれを機能させるためのより簡単で堅牢な方法がありますか?
編集:
__all__明確にするために、必ずしもモジュールのプロパティにアクセスする必要はありません。別の名前を簡単に使用して、同じ質問になってしまう可能性があります。__all__モジュール内のすべての公開オブジェクトを保持するという目的が私の意図と一致するため、使用しています。しかし同時に、私はそれに名前を付けることもできましたexposedFunctions。したがって、問題は、モジュールのグローバル プロパティにアクセスする方法についてです。