Whats new in Python_3_7
Python 3.7 的新货。
- 内建 breakpoint() 函数,在需要的地方插上
breakpoint()
就能启动调试了。以及,可以通过 PYTHONBREAKPOINT 环境变量配置想用什么软件做当调试器,例如 web-pdb - Data Class 单纯的数据类,可以约束乱用 dict 的现象。
- 可以在 module 级别写
__getattr__
// 有点像 quixote 的_q_lookup
.. - 也可以在 module 级别写
__dir()__ -> List[str]
- time.time_ns() 可以获得纳秒时间了,适合在 performance 排查时使用。
- DeprecationWarning 只在测试和 main 的时候启用。
- 可用标准库的
contextvars
实现类似 Flask g 的功能。 - 以前要想读取包的非 Python 部分的文件,需要用
read(open(dirname/'data.txt'))
这样的代码,现在可以用importlib.resources.read_binary('this.is.my.module', 'data.txt')
。 - 有序 Dict。
- Async/Await 是关键字。
- 不用操作 asyncio loop 了,可以用
asyncio.run(coro)
python -X dev
:开发者向的很多 debug 工具和运行时检查,也打开了 asyncio 的 debug mode,crash 的时候有 dump。