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

我一直在开发一组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方法?


    一种选择是将助手函数放在__init__.py ,因此您可以稍后从解析模块中调用它们。

    我不知道你的函数有多复杂......它们只是函数或者可能是助手类(es)?

    思考的方式是从用户的角度(解析器和辅助函数)。 你(或谁)会怎么称呼这些功能?

    链接地址: http://www.djcxy.com/p/54163.html

    上一篇: Where should I put helper functions for scripts that utilize a common module?

    下一篇: Should I put #! (shebang) in Python scripts, and what form should it take?