gpt4 book ai didi

Python fstring 作为函数

转载 作者:太空狗 更新时间:2023-10-30 01:25:58 25 4
gpt4 key购买 nike

与 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

最佳答案

通过使用 eval() 并将 locals() 或任何任意字典作为第二个位置 locals 参数,您可以计算一个使用任意输入组合动态地动态 f 字符串。

def fstr(fstring_text, locals, globals=None):
"""
Dynamically evaluate the provided fstring_text
"""
locals = locals or {}
globals = globals or {}
ret_val = eval(f'f"{fstring_text}"', locals, globals)
return ret_val

示例用法:

format_str = "{i}*{i}={i*i}"
i = 2
fstr(format_str, locals()) # "2*2=4"
i = 4
fstr(format_str, locals()) # "4*4=16"
fstr(format_str, {"i": 12}) # "10*10=100"

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com