我应该在哪里为使用公共模块的脚本添加辅助函数?

时间:2013-02-03 18:26:41

标签: python

我一直在开发一组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本身就是一个脚本。

解决这个问题的最恐怖的方法是什么?

1 个答案:

答案 0 :(得分:1)

一个选项是将辅助函数放在__init__.py中,因此您可以稍后从解析模块中调用它们吗?

我不知道你的功能有多复杂......它们只是函数还是辅助类?

思考方式是从用户(解析器和辅助函数)的角度出发。你(或谁)称这些功能如何?