While playing with new f-strings in the recent Python 3.6 release, I've noticed the following:
We create a
foo
variable with valuebar
:>>> foo = 'bar'
Then, we declare a new variable, which is our f-string, and it should take
foo
to be formatted:>>> baz = f'Hanging on in {foo}'
Ok, all going fine and then we call
baz
to check its value:>>> baz 'Hanging on in bar'
Let's try to change the value of
foo
and callbaz
again:>>> foo = 'spam' >>> baz 'Hanging on in bar'
Shouldn't it be dynamic? Why does this happen? I thought the f-string would update if the value of foo
changed, but this didn't happened. I don't understand how this works.