Can I use a conditional in a variable declaration?
kent at kentsjohnson.com
Sun Mar 19 05:15:25 CET 2006
volcs0 at gmail.com wrote:
> I want the equivalent of this:
> if a == "yes":
> answer = "go ahead"
> answer = "stop"
> in this more compact form:
> a = (if a == "yes": "go ahead": "stop")
If the value for the 'true' case can never have a boolean value of
False, you can use this form:
a = (a == "yes") and "go ahead" or "stop"
The short-circuit evaluation of 'and' and 'or' give the correct result.
This will not work correctly because the 'and' will always evaluate to
"" which is False so the last term will be evaluated and returned:
a = (a == "yes") and "" or "stop"
and IMO the extra syntax needed to fix it isn't worth the trouble; just
spell out the if / else.
More information about the Python-list