在编写代码时,我经常遇到解决琐碎依赖关系的问题。例如,让我们以我最近编写的一个 memoizer 对象的布局为例。我的目录结构如下所示:
memoizer/
memoizer.py
tests.py
strategies/
__init__.py
perfect.py
mru.py
queue.py
README
问题特别在于mru.py。mru.py 包含一个使用 queue.py 中定义的队列的 MRU 类。显然,队列不是记忆器的策略,将其置于策略之下没有任何意义。
我的一个想法是将我的代码设置为如下所示:
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
这可以解决我的问题,但直觉上似乎是错误的做法。
组织文件以解决这种不一致的正确方法是什么?