我阅读了如何将字符串转换为f-string? 和如何延迟/推迟f-string的评估? 并看到许多(有效的)解决方案使用exec
来推迟执行f-string,例如:
template = "My name is {name} and I am {age} years old"
name = 'Abcde'
age = 123
s = eval('f"""' + template + '"""') # My name is Abcde and I am 123 years old
是否有一个内部的Python函数(在众多的双下划线__something__
函数中),定义了解释器如何“运行” / “插值” f-string?
类似__runfstring__
这样的东西,在Python源代码中负责执行代码吗?如果是这样,我们是否可以使用以下方式自己调用此函数:
s = __runfstring__(template)
在最新的Python版本中?(3.7或3.8+)
template.format(name=name, age=age)
有什么优势吗? - Tom Dalton.format
中,如果有帮助的话?我认为简短的答案可能是 f-strings 不适用于你的使用场景。 - Tom Dalton.format(**locals())
? - Tom Dalton