`@final`装饰器和 `Final`注解标记不可被修改或重写

目的是为了声明这些元素不应该被修改/重写,表明代码设计意图。

@final 装饰器

  • 声明不应该被子类继承
  • 声明不能重写该方法
 1from typing import final
 2
 3@final
 4class FinalClass:
 5    """这个类不能被继承"""
 6
 7class SomeClass:
 8    @final
 9    def final_method(self):
10        """子类不能定义不同的final_method实现"""

Final注解

  • 声明变量/属性 不应该被重新赋值,即初始化后不再改变
1from typing import Final
2
3GLOBAL_CONSTANT: Final[str] = "这是一个常量值,因为它是final"