Python 3.8 f-string=表达式如何转义输出参数实际值?
Python f-string
= 表达式相关问题解答 首先明确结论:Python 3.8 新增的f-string = 语法原生不支持自动把表达式内部的变量替换为实际字面量,没法通过转义参数的方式实现你要的double(2) = 4输出效果。
可用实现方案
- 最推荐的方式就是直接手动拼接表达式,写法清晰易读,没有额外性能和安全隐患:
def double(x): return x * 2 some_int = 2 print(f'double({some_int}) = {double(some_int)}')
运行后输出就是你需要的:
double(2) = 4
- 如果不想重复书写函数调用逻辑,也可以用字符串替换的方式间接实现,但可读性和安全性都不如上述写法,不推荐生产环境使用:
expr = f'double({some_int})' print(f'{eval(expr) = }'.replace('eval(expr)', expr))
原理说明
f-string的=语法设计逻辑就是原样输出花括号内书写的原始表达式文本,不会递归解析替换表达式内部的变量值,因此不存在转义参数就能触发变量替换的原生用法。
内容的提问来源于stack exchange,提问作者maflAT
相关产品推荐
相关产品推荐

