私は設定ファイルを使用するPythonアプリケーションを作成していますので、設定ファイルの制御を専用モジュールconfigmanager
に委譲しています。 ConfigManager
。他のメソッドが呼び出されたときにPythonクラスが実行されるメソッド
ConfigManager
の方法が実行されると、設定ファイルが何らかの形で変更されるたびに、ディスクからファイルの最新バージョンを取得する必要があります。もちろん、DRYの精神では、configファイルのオープンをそれ自身の関数に委ねるべきです。
しかし、編集する各関数の設定ファイルを取得して返すメソッドを明示的に呼び出すのはあまり「クリーン」ではないようです。
メソッドが実行され、の前にのメソッドがそのクラスで実行されるときはいつでも、クラス内の他のメソッドで値を使用することを推奨しますか?言い換えれば
:
私は
ConfigManager.edit_config()
を作成します。ConfigManager.edit_config()
が呼び出されると、別の関数ConfigManager.get_config_file()
が実行されます。ConfigManager.get_config_file()
は、方法ConfigManager.edit_config()
に利用可能な値を作成します。ConfigManager.edit_config()
は、ConfigManager.get_config_file()
で指定された値にアクセスできます。
私は私のコードを乾燥するので、願望、ConfigManager
にedit_config()
方法の多くのバージョンを持っていることを期待しています。
このようなことを達成するための推奨方法はありますか?または、私はちょうど設定をうまく取得する関数を作成し、毎回手動で呼び出す必要がありますか?
Uhm ... 'edit_config()'で 'self.get_config_file()'を呼びますか?明示的は暗黙的より優れています。これを明示的に行うことの問題は何ですか? – deceze
私が言ったように、毎回手動で機能を実行するよりも良い方法があるように感じます。私は、Pythonが__init __()のような特別なクラスメソッドを持っている可能性があると考えました。それ以外の場合は、私は手動で行うことができます、私はちょうど他の可能性を探求したい。 – 99lives
'get_config_file'を呼び出す必要がある多くのメソッドがありますか?それでは、あなたのコードを[DRY](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself)にしたいと思うかもしれませんが、 'edit_config'を呼び出すたびにそのメソッドを実行する必要がある場合は、暗黙的にも明示的にも違いがあります。 – deceze