Python quirk in evaluation order
Peter Otten
__peter__ at web.de
Fri Jul 31 16:39:25 EDT 2009
James Stroud wrote:
> py> b = 4 if True else b
> py> b
> 4
> Isn't the right side supposed to be evaluated first?
Perhaps it becomes clearer if you change it a bit:
>>> b = 4 if True else whatever
>>> whatever
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'whatever' is not defined
I. e. the else clause is never evaluated at all.
Peter
More information about the Python-list
mailing list