コードを書いているときに、些細な依存関係に対処するという問題に遭遇することがよくあります。たとえば、最近書いたメモ化オブジェクトのレイアウトを見てみましょう。私のディレクトリ構造は次のようになります。
memoizer/
memoizer.py
tests.py
strategies/
__init__.py
perfect.py
mru.py
queue.py
README
問題は、具体的には、mru.pyにあります。mru.pyには、queue.pyで定義されたキューを使用するMRUクラスが含まれています。ただし、明らかに、キューはメモ化の戦略ではなく、戦略の下に置くことは意味がありません。
私が持っていたアイデアの1つは、次のようにコードを設定することでした。
memoizer/
memoizer.py
tests.py
strategies/
__init__.py
perfect.py
mru/
__init__.py
mru.py
queue.py
README
ただし、この設定の問題は、ユーザーがmruがサブパッケージに含まれていることを認識している必要があることです。
別のアイデアは、次のように構造を配置することでした。
memoizer/
memoizer.py
tests.py
strategies/
__init__.py
perfect.py
mru.py
dependencies/
__init__.py
queue.py
README
これで私の問題は解決しますが、直感的には間違った方法のようです。
この不整合を説明するためにファイルを整理する正しい方法は何ですか?