【发布时间】:2019-12-02 21:13:43
【问题描述】:
PEP 526 说如下:
请注意,虽然语法确实允许元组打包,但它不允许在使用元组解包时注释变量的类型。
为什么python解包时不支持变量的类型注解? PS。我必须先对类型进行注释,然后再进行解包,这很好,只是在解包时进行注释会更整洁。
【问题讨论】:
-
我的意思是,通常情况下,无论您使用什么静态时间类型检查器都可以推断出正确的类型,前提是您已经充分键入了其余代码。
PEP 526 说如下:
请注意,虽然语法确实允许元组打包,但它不允许在使用元组解包时注释变量的类型。
为什么python解包时不支持变量的类型注解? PS。我必须先对类型进行注释,然后再进行解包,这很好,只是在解包时进行注释会更整洁。
【问题讨论】:
在 PEP 526 的 Rejected/Postponed Proposals section 中有一些关于此的信息:
允许元组解包的类型注释:这会导致歧义:不清楚该语句的含义:
x, y: Tx 和 y 是否都属于 T 类型,或者我们是否期望 T 是分布在 x 和 y 上的两个项目的元组类型,或者 x 具有 Any 类型而 y 具有 T 类型? (如果这发生在函数签名中,后者就是这意味着。)与其让(人类)读者猜测,我们至少现在禁止这样做。
评论似乎暗示最终可能会提出一种更简单的语法的提议,该语法不易被误解。现在,我们不得不单独注释元组的类型。
【讨论】: