From 75f463a37554177ed13401a08b86f8c3dbbe9091 Mon Sep 17 00:00:00 2001 From: "Eric V. Smith" Date: Fri, 28 Aug 2015 11:16:23 -0400 Subject: [PATCH] Added section on order of evaluation. --- pep-0498.txt | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/pep-0498.txt b/pep-0498.txt index d5ce55ce9..86190ca24 100644 --- a/pep-0498.txt +++ b/pep-0498.txt @@ -602,10 +602,24 @@ having 2 expressions:: f'{x:.{width}}' -Expressions with side effects ------------------------------ +Evaluation order of expressions +------------------------------- -xxx +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 -------------------------------