【发布时间】:2019-08-12 01:27:12
【问题描述】:
def bar(x):
# some expensive calculation
<snip>
foo = lambda(x): bar(x) if bar(x) > 10 else 0
但是在这里我计算了 foo 两次。有没有办法仍然把它写成一个衬里但避免双重评估。我试过了
foo = lambda(x): v if (v = bar(x)) > 10 else 0
但这不起作用。
【问题讨论】:
-
您可以将 foo(x) 存储在一个变量 tmp 中并在您的代码中使用它。
标签: python lambda ternary-operator