与string.Template()或其他方法相比,我想使用Python f-string来简化语法。但是,在我的应用程序中,字符串是从文件加载的,并且变量的值只能在以后提供。

是否有一种方法可以将fstring功能与字符串定义分开调用?希望下面的代码可以更好地解释我希望实现的目标。

a = 5
s1 = f'a is {a}' # prints 'a is 5'

a = 5
s2 = 'a is {a}'
func(s2) # what should be func equivalent to fstring

最佳答案

使用str.format()

最好明确地传递参数给它。但是作为权宜之计,您可以使用locals()将本地(函数定义的)变量的字典传递给格式化函数:

foo = 'bar'
print('Foo is actually {foo}'.format(**locals()))

当然,您可以将globals()复制到本地dict,然后将locals()合并到本地dict,并使用它来更紧密地模拟f字符串方法。

关于Python fstring作为函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47597831/

10-11 20:06
查看更多