分配新值时,是否需要Python变量类型提示?

问题描述

首先,我知道类型提示在Python中是可选的-所以我的问题是,从有意义地帮助Python补全/棉绒/等意义上讲,是否需要使用它?工具解析代码。请考虑以下最小示例:

a: int = 1
a = 3
#---
b: Foo = Foo()
bar = Foo()
b = bar

在两种情况下,变量ab的类型都在声明时进行提示,但当值更改(更改为相同类型的不同值)时,我不再指定它。我想知道诸如Microsoft Language Server for Python之类的工具是否足以让该工具确定aintbFoo对象?替代方法是每次变量值更改时都键入提示,我觉得这太费力了:

a: int = 3
b: Foo = bar

解决方法

在名称范围内只需一次就可以了。 (当然是出于PyCharm的推论,但其他开发工具可能会有所不同。)

(顺便说一句,如果该名称所指向的数据类型发生变化(例如,从int变为str,那将是代码的味道...)