PEP 0498 -- Literal String Interpolation 翻译(未完待续)

在Python中支持多种的text字符串格式化。包括%方式,str.format()和string.Template.每种方法都有各自的优势,但也有在实际使用时笨重不便之处。本PEP提出一种新的字符串格式化机制: Literal String Interpolation 文本字符串插值(译注:我勒个去,我记性不好,真的只记住一种)。在本PEP中,这样的字符串被称为"f-string",为了表示这种字符串,首字符为f,表示“formatted strings”(格式化过的字符串)。

本PEP不是移除或者不再推荐使用(deprecate)任何已经存在的字符串格式化机制。


f-string提供的是使用一种最简单地语法(using a minimal syntax)将表达式嵌入字符串的一种方式(a way to embed expressions inside string literals)。注意f-string是在运行时才会被evaluated的表达式,而不是constant值。在Python源代码中, f-string就是一个带着f前缀的文本字符串,在braces 大括号中包含着表达式。这些表达式在运行时被替换为实际的值。例子:

>>> 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}.'
'My name is Fred, my age next year is 51, my anniversary is Saturday, October 12, 1991.'
>>> f'He said his name is {name!r}.'
"He said his name is 'Fred'."


你可能感兴趣的:(python,498,PEP)