Python 为什么没有';t PEP 3107(或484)是否包含注释全局/局部变量的语法?

Python 为什么没有';t PEP 3107(或484)是否包含注释全局/局部变量的语法?,python,python-3.x,static-analysis,type-hinting,static-typing,Python,Python 3.x,Static Analysis,Type Hinting,Static Typing,PEP 3107描述了向Python函数参数和返回值添加注释的语法。PEP 484给了他们一个意义 为什么它们没有包含注释全局变量和局部变量的语法?在我看来,允许以下形式的变量声明不会导致与现有Python语法的冲突,并且与函数参数语法一致: x: int x: int = 3 似乎注释变量被认为很重要:Mypy对注释变量使用了特殊注释:幸运的是,Python 3.6支持变量注释:关于为什么要在讨论这些PEP的Python邮件列表中查找某些内容的推测,或者你可以问政治公众人物的作者。PEP 4

PEP 3107描述了向Python函数参数和返回值添加注释的语法。PEP 484给了他们一个意义

为什么它们没有包含注释全局变量和局部变量的语法?在我看来,允许以下形式的变量声明不会导致与现有Python语法的冲突,并且与函数参数语法一致:

x: int
x: int = 3

似乎注释变量被认为很重要:Mypy对注释变量使用了特殊注释:

幸运的是,Python 3.6支持变量注释:

关于为什么要在讨论这些PEP的Python邮件列表中查找某些内容的推测,或者你可以问政治公众人物的作者。PEP 484在PEP 3107的约束范围内工作,PEP 3107可能从未考虑变量赋值。。很棘手,而且不仅仅是赋值(考虑
for
循环或
with…as…
语句)。大多数静态工具都会分析右侧表达式生成的内容,以便为名称指定类型。