diff --git a/pep-0498.txt b/pep-0498.txt index 963ec0ccd..00cabd0fc 100644 --- a/pep-0498.txt +++ b/pep-0498.txt @@ -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 -------------------------------