dict
慣習として、次のように「オプション」クラスの助けを借りてPythonで構成の構築をサポートできると誰かが私に提案しました:
...
config = {Options.A: 10, Options.B: 20} # produces config = {"A": 10, "B": 20}
result = myObj.someMethod(value, config)
...
ここでのアイデアは、ユーザーが最初から構成を構築することに頼るのではなく、クライアントユーザーが選択できるオプションのメニューを提供するdict
ことです-1つの利点は、構成フィールドのタイプミスをなくすことであり、おそらくそれが役立つと思います前方互換性あり。
これをサポートするために考えられる唯一の方法は、次のOptions
ようなクラスを実装することです。
class Options:
A = "A"
B = "B"
しかし、これは多くの点で気分が悪いです。ユーザー コードがオプション クラスのフィールド (例: Options.A="garbage"
) のいずれかを上書きすると壊れてしまうため、脆弱です。とにかく、これらのフィールドを実装するのは、A = "A"
ばかげているように感じます。dict
さらに、Options クラスを実装する場合、Options クラスを使用して?を生成する代わりに、Options オブジェクトを直接使用するべきではありません。
config = {Options.A: 10, Options.B: 20}
では、目的のパターンを実装するためのよりエレガントで効果的な方法、または同様のものはありますか? このパターンはおなじみですか?
編集:これが明確でない場合、config dict には利用可能なオプションの小さなサブセットのみを含める必要があります。