python - 我应该在哪里放置使用通用模块的脚本的辅助函数?

标签 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 本身就是一个脚本。

解决这个问题最符合 Pythonic 的方法是什么?

最佳答案

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

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

思考的方式是从用户的角度(解析器和那些辅助函数)。您(或任何人)将如何调用这些函数?

关于python - 我应该在哪里放置使用通用模块的脚本的辅助函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14675732/

相关文章:

python - 如何配置 Amazon EC2 实例以支持 python 分析器?

Python 2 使用日语测试导出 csv

python - 比较两个单元格值并提取差异

python - Google Cloud SQL - 我可以使用 SQLAlchemy 直接访问数据库吗 - 不在本地

python - 对以小写字母或大写字母开头的带重音符号的名称进行排序

python - 基于数据集大小的 FFT 偏移频率?

python - 在 Google 文本转语音中添加暂停

Python 分析 - 汇总我的代码之外的函数调用

python - 在列表 : hashing complex objects in python 中查找近似匹配项

python - Django - 将用户设置为不活动 5 秒