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

f-strings调试
这是Python3.8新特性的第三篇,第一篇介绍了Python3.8 新特性:赋值表达式,第二篇是Python3.8 新特性:仅位置参数。这篇文章介绍f-strings调试功能。
f-strings 是Python3.6中的新特性,Python3.8 中 f-strings 开始支持“=”操作,主要作用是方便用于调试。它的语法是:f'{expr=}' 。
写Python代码,我大部分时候都会用 print 函数调试,因为简单方便,如pdb、pycharm的断点调试功能只在少数特殊场景下才会使用。使用print 函数有什么问题呢?
在代码很长的复杂场景,你可能要打印好几个值,例如:
[Python]  纯文本查看  复制代码
?
1
2
3
4
5
6
name1 = "zhang"
name2 = "li"
name3 = "wang"
print (name1)
print (name2)
print (name3)
输出:
[Python]  纯文本查看  复制代码
?
1
2
li
wang
从输出结果来看,我们不知道哪个值对应的是哪个变量,在代码行数少的时候还能通过看源代码分辨出来,如果代码量很长很长时,就很容易搞混,不知你有没有遇到过,反正我经常为了区分谁是谁,打印时要加奇形怪异的特殊字符。
当然,在 print 时直接把变量名字打印出来是最直白的。
[Python]  纯文本查看  复制代码
?
1
2
3
4
5
6
name1 = "zhang"
name2 = "li"
name3 = "wang"
print (f "name1={name1}" )
print (f "name2={name2}" )
print (f "name3={name3}" )
输出:
[Python]  纯文本查看  复制代码
?
1
2
3
name1 = zhang
name2 = li
name3 = wang
为了调试方便,python3.8在f-strings中可以使用等号“=”,打印出来时,等号左边就是变量的名字,右边是对应的值。
[Python]  纯文本查看  复制代码
?
1
2
3
4
5
6
name1 = "zhang"
name2 = "li"
name3 = "wang"
print (f "{name1=}" )
print (f "{name2=}" )
print (f "{name3=}" )
输出:
[Python]  纯文本查看  复制代码
?
1
2
3
name1 = zhang
name2 = li
name3 = wang
再举个例子:
[Python]  纯文本查看  复制代码
?
1
2
3
>>> now = datetime.datetime.now()
>>> print (f "{now.day=}" )
now.day = 21

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值