[Python-ideas] Reference variable in assignment: x = foo(?)

Joshua Landau joshua at landau.ws
Fri Jul 12 10:44:36 CEST 2013


On 12 July 2013 05:21, Haoyi Li <haoyi.sg at gmail.com> wrote:
> Another possible solution for the
>
> value = expensive(b) if expensive(b) else default
>
> problem, if you don't want a statement to assign to a temporary variable, is
> to use a `let` expression
>
> // raw version
> value = (lambda res: res if res else default)(expensive(b))
>
> // with a helper function `let`
> value = let(expensive(b))(lambda res: res if res else default)

Ahem:

(lambda res=expensive(b): res if res else default)()


More information about the Python-ideas mailing list