与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/