将数字分配给 python 中的字符串常量

Assign a number to a string constant in python

最近我在Python看到了这样的东西:

const: str = 5;

我认为它会报错,因为一个是将一个数值赋给一个声明为常量的字符串;然而,当我打印 const+5 时,跳到另一个错误,它给了我 10,就好像 const 是一个数字常量。

这里发生了什么?

这里有两点需要理解:

  1. const在Python中没有特殊意义。在这里它只是被用作变量名(这有点邪恶,因为它只能用来混淆粗心的人)。
  2. Python 解释器不强制执行类型注释。但是,如果您 运行 在您的代码上使用静态类型检查器,则分配不兼容的类型会产生错误:
test.py:1: error: Incompatible types in assignment (expression has type "int", variable has type "str")

另外请注意,分号在 Python 中不是必需的,分号通常被认为是不好的风格。