Moved order of evaluation into the Specification section, since it's guaranteed.
This commit is contained in:
parent
3e2bcc6966
commit
088fee8cb8
38
pep-0498.txt
38
pep-0498.txt
|
@ -360,6 +360,25 @@ Leading and trailing whitespace in expressions is skipped
|
||||||
For ease of readability, leading and trailing whitespace in
|
For ease of readability, leading and trailing whitespace in
|
||||||
expressions is ignored.
|
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
|
Discussion
|
||||||
==========
|
==========
|
||||||
|
|
||||||
|
@ -602,25 +621,6 @@ having 2 expressions::
|
||||||
|
|
||||||
f'{x:.{width}}'
|
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
|
Expressions used multiple times
|
||||||
-------------------------------
|
-------------------------------
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue