プログラムで渡したい情報のほとんどを保持する、Engine という名前のタプルを作成しました。このタプルの内部には、いくつかのパラメーターと、下流のメソッドによって使用される 2 つのインスタンス化されたクラスがあります。
Engine = namedtuple('Engine', 'website, browser, s, e')
engine = Engine(website, browser, s(), e())
download(engine)
私は渡す関数を持っていますengine
。download
パス内のサブ関数engine
- 一部は使用website
、一部は使用browser
、一部は使用、一部はs
使用e
。
engine
これで、(プログラマーとしての) 認知オーバーヘッドが大幅に削減され、発生する可能性のある特定の変更の下流と上流の両方で引数リストが最新であることを確認する必要がなくなりました。メソッドで引数を使用しますengine.foo
。
一方で、これは「怠惰な」プログラミングのように感じます。すべてをエンジンの「クラス」にラップし、変数をクラスのメソッドとして持つだけで、すべてが簡単になりすぎているように思えます。さらに、この実装では見られないある種のオーバーヘッドがあったことを誓います。これには何らかの前例がありますか?無視するには便利すぎると感じているからです。
渡される引数の数を減らすために、プログラム全体で引数の代わりにnamedtuplesを使用する必要がありますか?