Python:在同一行中声明多个变量的类型

Nel*_*ves 2 python python-3.x

如果重复,请让我知道,但找不到答案。同样,这个问题似乎没有解决这个问题。

我想在同一行中声明多个变量的类型。代替

a: float
b: float
c: float
Run Code Online (Sandbox Code Playgroud)

我想使用类似

a, b, c: float
Run Code Online (Sandbox Code Playgroud)

但是我收到语法错误。正确的语法是什么?

Kev*_*vin 5

用一个注释语句注释多个变量似乎是不可能的。

带注释的赋值语句将注释定义为:

annotated_assignment_stmt ::=  augtarget ":" expression
                               ["=" (starred_expression | yield_expression)]
Run Code Online (Sandbox Code Playgroud)

因此,该augtarget规则规定了允许在冒号之前进行的操作。augtarget定义为:

augtarget                 ::=  identifier | attributeref | subscription | slicing
Run Code Online (Sandbox Code Playgroud)

因此,冒号之前唯一可以做的就是标识符(即单个变量),attributeref(后跟的表达式.some_attribute_name),订阅(后跟的表达式[some_index])或切片(语法与订阅相同)。a, b, c不是所有这些东西,a, b, c: <some type>也不是合法的语法。


如果只想在一行上注释所有三个变量,而不必在一条语句中注释,则可以将独立的简单语句与分号链接在一起:

a:float; b:float; c:float
Run Code Online (Sandbox Code Playgroud)

...但这有点令人不满意,因为您仍然必须键入float3次。