当前位置: 首页 > 后端技术 > Python

Python3.8新特性:f-strings调试

时间:2023-03-25 19:27:00 Python

f-strings调试这是Python3.8新特性的第三篇文章。第一篇介绍Python3.8的新特性:赋值表达式,第二篇介绍Python3。8新功能:仅限位置参数。本文介绍f-strings调试功能。f-strings是Python3.6中的一个新特性。在Python3.8中,f-strings开始支持“=”操作,主要用于调试。它的语法是:f'{expr=}'。在写Python代码的时候,我大部分时间都是使用print函数来调试,因为简单方便。比如pdb和pycharm的断点调试功能,只是在少数特殊场景下使用。使用打印功能有什么问题?在长代码的复杂场景下,可能需要打印多个值,例如:[Python]纯文本查看__复制代码?123456name1="zhang"name2="li"name3="wang"print`(name1)`print`(name2)`print`(name3)`输出:[Python]纯文本视图__复制代码?12liwang从输出结果看,不知道哪个值对应哪个变量。当代码行数较少时,也可以通过查看源码来区分。如果代码量很长,很容易混淆。不知道你有没有遇到过。反正我经常在打印的时候加上奇怪的特殊字符来区分谁是谁。.当然打印的时候直接把变量名打印出来是最直接的。[Python]纯文本查看__复制代码?123456name1="zhang"name2="li"name3="wang"print`(f"name1={name1}")`print`(f"name2={name2}")`print`(f"name3={name3}")`输出:[Python]纯文本视图__复制代码?123name1`=`zhangname2`=`liname3`=`wang为了方便调试,python3.8中f-strings中可以使用等号“=”。打印出来的时候,等号左边是变量名,右边是对应的值。[Python]纯文本查看print`(f"{name3=}")`输出:[Python]纯文本查看__复制代码?123name1`=`zhangname2`=`liname3`=`wang又如:【Python】纯文本查看__复制代码?123>>>now=datetime.datetime.now()>>>print`(f"{now.day=}")`now.day`=`21