Python 3.x Python 3.6.1中的F-strings:如果F-strings不使用局部或全局变量,那么F-strings如何工作?I';我很困惑

Python 3.x Python 3.6.1中的F-strings:如果F-strings不使用局部或全局变量,那么F-strings如何工作?I';我很困惑,python-3.x,global-variables,local-variables,f-string,Python 3.x,Global Variables,Local Variables,F String,我在Python3.6.1文档中读到f字符串不使用局部或全局变量。虽然我理解f-string不需要访问局部或全局变量中提供的多余信息的原因,但我不理解f-string在读取局部或全局变量时如何工作 以下是文档提供的示例: import datetime name = 'Fred' age = 50 anniversary = datetime.date(1991, 10, 12) f'My name is {name}, my age next year is {age+1}, my anni

我在Python3.6.1文档中读到f字符串不使用局部或全局变量。虽然我理解f-string不需要访问局部或全局变量中提供的多余信息的原因,但我不理解f-string在读取局部或全局变量时如何工作

以下是文档提供的示例:

import datetime
name = 'Fred'
age = 50
anniversary = datetime.date(1991, 10, 12)

f'My name is {name}, my age next year is {age+1}, my anniversary is {anniversary:%A, %B %d, %Y}.'

f'He said his name is {name!r}.'
产生以下输出:

'My name is Fred, my age next year is 51, my anniversary is Saturday, October 12, 1991.'
"He said his name is 'Fred'."
代码中的“名称”、“年龄”和“周年纪念日”不是全局变量吗?如果是,f字符串不是使用了这些全局变量吗

这里有一个指向我从中获取示例的文档的链接


谢谢你的耐心和善意的帮助

它们确实是代码中的变量,当包含在替换字段(即{})中时,它们被视为表达式,并在运行时进行计算。见: