Python 3.7 有什么新变化 - 其他语言更改&新模块

其他语言更改

await 表达式和包含 async for 子句的推导在格式化字符串文本中的表达式中是非法的,因为 实现。在Python 3.7中,这个限制被取消了。

现在可以将超过 255 个参数传递给函数,并且函数可以 现在有超过 255 个参数。(由Serhiy Storchaka在bpo-12844和bpo-18896中提供。

bytes.fromhex() 和 bytearray.fromhex() 现在忽略所有 ASCII 空格,而不仅仅是空格。(由Robert Xiao在bpo-28927中提供。

str、bytes 和 bytearray 获得了对 新的 Isascii() 方法,可用于 测试字符串或字节是否仅包含 ASCII 字符。 (由INADA Naoki在bpo-32677中提供。

ImportError 现在在失败时显示模块名称和模块路径。(由Matthias Bussonnier在bpo-29546中提供。__file__from … import …

循环导入涉及将子模块绑定到的绝对导入 现在支持名称。 (由Serhiy Storchaka在bpo-30024中提供。

object.format(x, ‘’)现在等效于 而不是 。 (由Serhiy Storchaka在bpo-28974中提供。str(x)format(str(self), ‘’)

为了更好地支持堆栈跟踪、类型的动态创建。TracebackType 现在可以从 Python 代码实例化,并且 回溯上的属性现在是 写。 (由Nathaniel J. Smith在bpo-30579中提供。tb_next

使用 -m 开关时,现在急切地扩展 到完整的起始目录路径,而不是留空 目录(允许从当前工作目录导入 导入发生的时间) (由 Nick Coghlan 在 bpo-33053 中提供。sys.path[0]

新的 -X 选项或 PYTHONPROFILEIMPORTTIME 环境变量可用于显示 每个模块导入的计时。 (由 Victor Stinner 在 bpo-31415 中提供。importtime

新模块

上下文变量
新的 contextvars 模块和一组新的 C API 引入了 支持上下文变量。上下文变量在概念上是 类似于线程局部变量。与 TLS 不同,上下文变量 正确支持异步代码。

异步和十进制模块已更新为 使用 并支持开箱即用的上下文变量。特别是活跃的 十进制上下文现在存储在上下文变量中,这允许 十进制运算,用于在异步代码中使用正确的上下文。

参见
PEP 567 – 上下文变量
PEP由Yury Selivanov编写和实施

数据类
新的 dataclass() 装饰器提供了一种声明数据类的方法。数据类使用类变量描述其属性 附注。它的构造函数和其他魔术方法,如__repr__()、eq()和__hash__()是自动生成的。

例:

@dataclass
class Point:
    x: float
    y: float
    z: float = 0.0

p = Point(1.5, 2.5)
print(p)   # produces "Point(x=1.5, y=2.5, z=0.0)"

参见
PEP 557 – 数据类
PEP由Eric V. Smith编写和实施

importlib.resources
新的importlib.resources模块提供了几个新的API和一个 新的 ABC,用于访问、打开和读取包内的资源。 资源与包中的文件大致相似,但它们不需要 是物理文件系统上的实际文件。模块加载器可以提供返回的函数 一个importlib.abc.ResourceReader实例来支持这一点 新的 API。内置文件路径加载程序和 zip 文件加载程序都支持此功能。get_resource_reader()

由Barry Warsaw和Brett Cannon在bpo-32248中提供。

另请参阅importlib_resources – 早期 Python 版本的 PyPI 向后移植。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值