3

私は一連の 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 な方法は何ですか?

4

1 に答える 1

1

1 つのオプションは、ヘルパー関数を__init__.pyに配置することです。したがって、後で解析モジュールから呼び出すことができますか?

あなたの関数がどれほど複雑かわかりません...それらは単なる関数ですか、それともヘルパークラスですか?

考え方はユーザー(パーサーとそのヘルパー関数)の観点からです。あなた (または誰でも) は、これらの関数をどのように呼び出しますか?

于 2013-02-03T19:06:01.147 に答える