2

この質問はpythonを対象としていますが、ユーザーが他の言語の経験を共有してもかまいません。

基本的に私の問題は、遅延変数を関数に渡そうとしています。(私の場合、関数を制御できない可能性があるため、ジェネレーターを入力として受け取るように変更することはできません)。

例 (dict.get は関数の例ですが、foo である可能性があることに注意してください)

def calc():
    sleep(10**100)
    return 42

def my_args():
    yield 'meaning'
    yield calc()


#Instead of

meaning_of_life = dict_.get('meaning', calc())

#I would rather

meaning_of_life = dict_.get(my_args)

1行のエレガントなソリューションはないと思いますか? おそらく複雑なモンキーパッチが必要ですか? (もしそうなら、私が試す価値はありません)。

ありがとう。

4

2 に答える 2

0
meaning_of_life = dict_.get('meaning') or calc()
于 2012-05-25T02:40:22.007 に答える