Proposal: function which simulates C ?: operator
Paul Rubin
http
Sun Jul 11 16:58:53 EDT 2004
Tor Iver Wilhelmsen <tor.iver.wilhelmsen at broadpark.no> writes:
> > (lambda: g(x), lambda: f(x))[bool(condition)]()
>
> Since you call the object afterwards, you don't need the lambdas
> (which add a layer of indirection), just the function references:
>
> (g, f)[bool(condition)]()
Good catch, for that particular example. The lambdas are needed for
more general cases, e.g. (x > 0 ? (f(x)+g(y)) : (h(x)-z(y)))
There's been various proposals floated for macros in Python. If
something like that becomes real, that can solve this whole problem.
More information about the Python-list
mailing list