# Python 3.7(2018/06/27) ## 新特性和改进 1. **延迟的标注求值** - 它将在 Python 3.10 中成为默认行为。 ## 新的库模块 1. **数据类 (Data Classes)-@dataclass**: - 提供了一种声明 数据类 的方式 - 它的构造器和其他魔术方法例如 __repr__(), __eq__() 以及 __hash__() 会自动地生成。 - 引入了用于定义仅包含数据的类的简化语法,通过装饰器 `@dataclass` 实现。例如: ```python 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) ``` 2. **上下文变量 (Context Variables)-contextvars模块**: - 引入了 `contextvars` 模块,允许在异步代码中使用上下文变量。例如: ```python 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()) ``` ## 标准库中的重大改进 1. **asyncio 模块获得了许多新的特性、可用性和 性能提升** - 重要的改变包括: - 引入了 `asyncio.run()` 函数作为运行异步代码的新入口点,简化了异步程序的启动过程。 2. **time 模块现在提供 纳秒级精度函数 的支持**