Python 3.8这个新功能,让你每天能省出几秒钟陪女朋友
- 2019 年 11 月 14 日
- 筆記
导读:f-strings 是Python3.6中的新特性,Python3.8 中 f-strings 开始支持“=”操作,主要作用是方便用于调试。它的语法是:f'{expr=}'。
写Python代码,我大部分时候都会用 print 函数调试,因为简单方便,如pdb、pycharm的断点调试功能只在少数特殊场景下才会使用。
使用print 函数有什么问题呢?
作者:刘志军
来源:Python之禅(ID:VTtalk)
在代码很长的复杂场景,你可能要打印好几个值,例如:
name1 = "zhang" name2 = "li" name3 = "wang" print(name1) print(name2) print(name3)
输出:
zhang li wang
从输出结果来看,我们不知道哪个值对应的是哪个变量,在代码行数少的时候还能通过看源代码分辨出来,如果代码量很长很长时,就很容易搞混,不知你有没有遇到过,反正我经常为了区分谁是谁,打印时要加奇形怪异的特殊字符。
当然,在 print 时直接把变量名字打印出来是最直白的。
name1 = "zhang" name2 = "li" name3 = "wang" print(f"name1={name1}") print(f"name2={name2}") print(f"name3={name3}")
输出:
name1=zhang name2=li name3=wang
为了调试方便,python3.8在f-strings中可以使用等号“=”,打印出来时,等号左边就是变量的名字,右边是对应的值。
name1 = "zhang" name2 = "li" name3 = "wang" print(f"{name1=}") print(f"{name2=}") print(f"{name3=}")
输出:
name1=zhang name2=li name3=wang
再举个例子:
>>> now = datetime.datetime.now() >>> print(f"{now.day=}") now.day=21
这个特性,可以帮你节省几秒钟时间陪女朋友。女朋友说,谁稀罕你这几秒钟啊。。。