Moved order of evaluation into the Specification section, since it's guaranteed.

This commit is contained in:
Eric V. Smith 2015-08-28 12:21:04 -04:00
parent 3e2bcc6966
commit 088fee8cb8
1 changed files with 19 additions and 19 deletions

View File

@ -360,6 +360,25 @@ Leading and trailing whitespace in expressions is skipped
For ease of readability, leading and trailing whitespace in
expressions is ignored.
Evaluation order of expressions
-------------------------------
The expressions in an f-string are evaluated in left-to-right
order. This is detectable only if the expressions have side effects::
>>> def fn(l, incr):
... result = l[0]
... l[0] += incr
... return result
...
>>> lst = [0]
>>> f'{fn(lst,2)} {fn(lst,3)}'
'0 2'
>>> f'{fn(lst,2)} {fn(lst,3)}'
'5 7'
>>> lst
[10]
Discussion
==========
@ -602,25 +621,6 @@ having 2 expressions::
f'{x:.{width}}'
Evaluation order of expressions
-------------------------------
The expressions in an f-string are evaluated in left-to-right
order. This is detectable only if the expressions have side effects::
>>> def fn(l, incr):
... result = l[0]
... l[0] += incr
... return result
...
>>> lst = [0]
>>> f'{fn(lst,2)} {fn(lst,3)}'
'0 2'
>>> f'{fn(lst,2)} {fn(lst,3)}'
'5 7'
>>> lst
[10]
Expressions used multiple times
-------------------------------