1

Python プログラマーの皆さん、こんにちは。

私のスクリプトには、関数によって生成され、dict で返される設定変数がいくつかあります。これらの設定変数は、いくつかの関数に渡されます。私は自分のコードを読みやすく書こうとしているので、どの表記法を好むか知りたいですか?

def fooA(a,b,c):
    return a+b+c

def fooB(D,c):
    return D['a']+D['b']+c


settings = { 'a':1, 'b':2 }
c = 3

print fooA(settings['a'],settings['b'],c)
print fooB(settings,c)

それとも、設定変数を辞書にラップしないことが最善の方法だと思いますか?

4

4 に答える 4

2

私は確かにPythonicであることの専門家ではありませんが、これはかなり悪いと思います.

オブジェクト、または名前付きタプルなどを使用します。私の意見では、辞書アクセス構文は、設定などにはあまり適していません。

于 2013-11-04T10:33:46.523 に答える
2

設定に dict または dict のようなオブジェクトを使用することは問題ありません (代わりにカスタムの不変の dict のようなオブジェクトを使用することをお勧めしますが、とにかく...)、カスタムの「設定」オブジェクト FWIW と同様に (ヒント: Python オブジェクトは主に美化された口述...)。

wrt/関数呼び出しに関しては、万能の答えはありません。最初のバージョンは、より分離されているという点で「より優れています」(設定への依存関係がない、定義されている設定についての仮定がないなど))、より明示的ですが、コードの一部は実際にはアプリケーションの設定に関連付けられているため、 「設定」のdict-or-object全体を渡すか、それを取得する方法を提供する方が理にかなっています。

于 2013-11-04T10:52:26.573 に答える
0

辞書は問題ないと思います。人間が読めるファイルに設定を書きたい場合は、標準ライブラリの configparser を使用できます: http://docs.python.org/2/library/configparser.html

于 2013-11-04T10:50:30.977 に答える