- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
与 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/
与 string.Template() 或其他方法相比,我喜欢使用 Python f-string,因为它的语法简单。然而,在我的应用程序中,字符串是从文件中加载的,变量的值只能稍后提供。 是否有办法
我正在尝试在 Python3(.7) 中使用三引号字符串来构建一些格式化的字符串。 我有一个内部字符串列表,所有这些字符串都需要使用标签: This is some text acro
fstrings 在 Python 中是如何实现的?我正在通过 IDE 查看字符串和 fstring 变量的类型,它们具有相同的推断类型 str。它是一个全新的类还是实现与字符串相同的接口(inter
我正在尝试编写以下字符串 Target\=R80.40 正如上面所示,而 R80.40 应该是从变量派生的值。 所以解决方案应该是这样的 version='R80.40' print(f'Target
当做python3 Webhook.py(this是文件)时,它给了我错误: File "", line 1 (%X - %x) ^ SyntaxError: invalid syntax 我尝试打印
我在 pip install future-fstrings 之后在 python2 中使用 fstrings,如下所示: # -*- coding: future_fstrings -*- clas
我是一名优秀的程序员,十分优秀!