Python 3.7 的新特性

Python 接触的晚,所以接着 体验一下 Python 3.8 带来的主要新特性序继续往前翻,体验一下 Python 3.7 曾经汇入的新特性,爱一门语言就要了解她真正的历史。一步一步慢慢给 Python 来个起底。

先来看看 Python 网站的各版本使用情况 Usage statistics of Python Version 3 for websites, 这里统计的 Python 开发的网站的数据,应该有 Python 3 大规模的用于其他领域。单网站应用 Python  来说,Python 2 还有大量遗留代码,Python 3 还是 3.6 为主,Python 的升级还任重道远。本人也是谨慎的在从 3.7 迁移到 3.8 的过程中,AWS 的 Lambda 都支持 3.8,直接上 3.8 也没什么历史负担。以下是从网站使用 Python 统计情况中的两个截图

Python 3.7.0 发布于 2018-06-27, 这篇文章 Cool New Features in Python 3.7 详细介绍了 Python 3.7 的新特性,本文也是从其中挑几个来体验体验。

breakpoint() 进入调试器

这个功能好像没什么卵用,现在随手一个 IDE 都能断点调试,大不了临时加些 print 语句,把 breakpoint() 语句留在代码中也是个垃圾。不管它呢,既然是个新特性,顺道看下了,就是说在代码中加行 breakpoint() ,代码执行到该处就会默认进入 PDB(Python Debugger) 调用会话。

# bug.py
e = 1
f = 2
breakpoint()
r = e / f
print(r)

用 python 3.7 bug.py 执行,然后看到

$ python3.7 bug.py
> /Users/yanbin/bug.py(4)<module>()
-> r = e / f
(Pdb) e
1
(Pdb) c
0.5

参考 PDB 的用法,比如输入变量名可以查看它的值, c 继续执行。

breakpoint() 是之前的 import pdb; pdb.set_trace() 的缩减写法。

如果要跳过代码中的所有 breakpoint() 停顿,可设置 PYTHONBREAKPOINT=0

$ PYTHONBREAKPOINT=0 python3.7 bug.py
0.5

是不是没多大可能用得上它啊。

数据类

这可是个大趋势,像在 Java 中 Playframwork 曾给 public 属性自动生成 getter/setter 方法,还有用 Lombok 来辅助的,直到 Java 14 出现了 record 类,Scala 的 case class ,Kotlin 中也有 data class 类型 -- 一枚典型的 Javaer。所以 P

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值