1.6.7. Python 3.7(2018/06/27)¶
新特性和改进¶
延迟的标注求值
它将在 Python 3.10 中成为默认行为。
新的库模块¶
数据类 (Data Classes)-@dataclass:
提供了一种声明 数据类 的方式
它的构造器和其他魔术方法例如 repr(), eq() 以及 hash() 会自动地生成。
引入了用于定义仅包含数据的类的简化语法,通过装饰器
@dataclass
实现。例如:from dataclasses import dataclass @dataclass class Point: x: float y: float p = Point(1.5, 2.5) print(p) 输出: Point(x=1.5, y=2.5)
上下文变量 (Context Variables)-contextvars模块:
引入了
contextvars
模块,允许在异步代码中使用上下文变量。例如:import asyncio from contextvars import ContextVar var = ContextVar('var', default='default_value') async def main(): print(var.get()) var.set('new_value') await asyncio.sleep(1) print(var.get()) asyncio.run(main())
标准库中的重大改进¶
asyncio 模块获得了许多新的特性、可用性和 性能提升
重要的改变包括:
引入了
asyncio.run()
函数作为运行异步代码的新入口点,简化了异步程序的启动过程。
time 模块现在提供 纳秒级精度函数 的支持