【发布时间】:2018-04-27 16:06:23
【问题描述】:
我经常使用string.format() 将键值对插入到字符串模板中。新的Pep 498 f-strings 已经被推荐了一段时间,但对于这种行为来说,它们似乎是一个糟糕的选择。
例如,如果我想创建一个新的 f_string,我需要先创建变量:
>>> date = 22
>>> date2 = f'this is a {date}'
>>> date2
'this is a 22'
现在,如果我尝试通过创建 f-string 模板来执行相同的操作,但没有初始化替换值,我会得到预期的 NameError
>>> date_template = f'this is a new {date_new}'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'date_new' is not defined
由于无法将字符串转换为 f-string 和 f-strings 似乎主要是语法糖。有没有使用f-strings 作为模板的不明显方式,还是我应该继续使用string.format() 和string.format_map()?
【问题讨论】:
标签: python-3.x