我一直在开发一组 Python 脚本,为了简单起见,我使用专门为这些脚本编写的解析器来操作一组输入文件。该项目的设计通常如下所示:
/project/project/__init__.py
/project/project/parser.py
/project/project/helperfunctions.py
/project/preferences.ini
/project/script1.py
/project/script2.py
每个脚本都调用某些函数helperfunctions.py
来执行诸如读取首选项文件之类的任务——否则这些代码必须为每个脚本复制。解析器根本不使用辅助函数。
但现在我决定让项目面向解析器本身,同时仍将脚本放在一边。所以现在项目看起来像这样:
/project/scripts/preferences.ini
/project/scripts/script1.py
/project/scripts/script2.py
/project/parser.py
/project/setup.py
我认为这是一个更简洁的设计,但问题是我不确定将这些辅助函数放在哪里了。我提出的想法是:
- 与解析器一起
setup.py
安装helperfunctions.py
。我反对这一点,因为辅助函数只是提供与解析器无关的便利方法。 - 将辅助函数作为“隐藏”类合并到解析器中。出于与上述相同的原因,我反对这一点。
- 将辅助功能放入
/project/scripts/
,避开安装。我不喜欢这个想法,因为这表明helperfunctions.py
它本身就是一个脚本。
解决这个问题的最 Pythonic 方法是什么?