3

我正在尝试新的 f 字符串,我想知道是否可以将普通字符串“编译”成 f 字符串。因此可以控制 f-string 的评估时间,并能够在使用 f-strings 之前对其进行定义。

示例伪代码:

a = 'normal string with some curly {inside}'
inside = 'in it!'
print(a.make_f_string())
>>> 'normal string with some curly in it!'

所以基本上我需要在它包含的变量之前定义 f 字符串。或将字符串设为 f 字符串。

我尝试使用它们的嵌套功能(SO),但没有运气。

可能吗?到目前为止,我发现的唯一方法是使用 eval(),而且似乎远非一个好方法。

eval(f"f'{a}'")
4

1 回答 1

2

可能吗?

不,除了evaling 或execing 以类似的方式,你不能这样做。

由于您试图在需要实际格式化之前定义格式,因此您需要.format,而不是f-strings。

于 2017-06-27T19:43:46.453 回答