【问题标题】:Python does not allow annotating the types of variables when unpackingPython 不允许在解包时注释变量的类型
【发布时间】:2019-12-02 21:13:43
【问题描述】:

PEP 526 说如下:

请注意,虽然语法确实允许元组打包,但它不允许在使用元组解包时注释变量的类型。

为什么python解包时不支持变量的类型注解? PS。我必须先对类型进行注释,然后再进行解包,这很好,只是在解包时进行注释会更整洁。

【问题讨论】:

  • 我的意思是,通常情况下,无论您使用什么静态时间类型检查器都可以推断出正确的类型,前提是您已经充分键入了其余代码。

标签: python type-annotation


【解决方案1】:

在 PEP 526 的 Rejected/Postponed Proposals section 中有一些关于此的信息:

允许元组解包的类型注释:这会导致歧义:不清楚该语句的含义:

x, y: T

x 和 y 是否都属于 T 类型,或者我们是否期望 T 是分布在 x 和 y 上的两个项目的元组类型,或者 x 具有 Any 类型而 y 具有 T 类型? (如果这发生在函数签名中,后者就是这意味着。)与其让(人类)读者猜测,我们至少现在禁止这样做。

评论似乎暗示最终可能会提出一种更简单的语法的提议,该语法不易被误解。现在,我们不得不单独注释元组的类型。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-30
    • 2017-12-26
    • 2017-11-03
    • 1970-01-01
    • 1970-01-01
    • 2020-01-13
    • 1970-01-01
    相关资源
    最近更新 更多