Python f-string表达式大括号内等号(=)的作用是什么?
Python f-string中
=的调试用法 嘿,这个是Python 3.8版本之后新增的超实用调试格式化语法!
你肯定知道普通f-string里的{表达式}会把表达式的计算结果转成字符串输出,但在表达式末尾加=之后,它会同时输出表达式本身和它的结果,格式是表达式=结果——完美解决了调试时要手动写f"变量名={变量}"这种重复代码的麻烦!
拿你给的示例来说:
log_file = open("log_aug_19.txt", "w") console_error = '...stuff...' log_file.write(f'{console_error=}')
执行这段代码后,日志文件里会写入的内容是:
console_error='...stuff...'
而不是单纯的'...stuff...',这样你看日志的时候能直接知道这个值对应的变量名,不用再去翻代码对应。
几个实用的扩展用法
- 复杂表达式也支持:比如计算字符串长度时,
f'{len(console_error)=}'会输出len(console_error)=11(假设console_error的长度是11) - 搭配格式说明符:如果想限制输出长度,
f'{console_error=:.5}'会输出console_error='...st',只保留前5个字符 - 多行/嵌套表达式同样生效:比如
f'{sum([x*2 for x in range(3)])=}'会输出sum([x*2 for x in range(3)])=6
这个语法本质上就是为了简化调试流程,让你不用重复写变量名,输出的信息也更清晰直观,特别适合快速排查变量值的问题。
内容的提问来源于stack exchange,提问作者ibarrond
相关产品推荐
相关产品推荐

