我一直在开发一组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
本身就是一个脚本。解决这个问题的最恐怖的方法是什么?
答案 0 :(得分:1)
一个选项是将辅助函数放在__init__.py
中,因此您可以稍后从解析模块中调用它们吗?
我不知道你的功能有多复杂......它们只是函数还是辅助类?
思考方式是从用户(解析器和辅助函数)的角度出发。你(或谁)称这些功能如何?