値を個別に評価するPythonディレクトリを作成したいと思います。
したがって、たとえば、次の機能しない例では、次のように定義します
a = {'key1': 'value1', 'key2': 42, 'key3': foo(20)}
たとえば
def foo(max):
"""Returns random float between 0 and max."""
return max*random.random()
そして、口述の処理後、私は例えば
a_processes = {'key1': 'value1', 'key2': 42, 'key3': 12.238746374}
keyの値key3
はすぐに評価され、foo(20)
呼び出し可能ではないため、この例は機能しません。それが機能する方法は、次のようなものを使用することです
a = {'key1': 'value1', 'key2': 42, 'key3': foo}
しかし、ここでfoo
はその議論を見逃します。これを処理する1つの方法は、次の方法でdictを定義することです。
a = {'key1': 'value1', 'key2': 42, 'key3': [foo, 20]}
次の処理スキームで
a_processed = dict([k,process(v)] for k,v in a.items())
これprocess
は、引数がリストであるかどうか、または最初の要素が残りの引数で呼び出される呼び出し可能であるかどうかをチェックする意味のある関数です。
私の質問は、私の基本的なアイデアを実装するためのより良い方法/アイデアについてですか?