在Python中,定义常量通常有以下几种方法:
使用全大写字母命名
MY_CONSTANT = "value"
使用`const`关键字(Python 3.6及以上版本支持):
const MY_CONSTANT = "value"
使用`immutable`类型注解(Python 3.8及以上版本支持):
MY_CONSTANT: str = "value"
使用`functools.lru_cache`装饰器(适用于计算密集型的常量):
from functools import lru_cache@lru_cache(maxsize=None)def fibonacci(n):if n < 2:return nreturn fibonacci(n-1) + fibonacci(n-2)
使用`functools.singledispatch`装饰器(适用于多态常量):

from functools import singledispatch@singledispatchdef add(a, b):raise NotImplementedError@add.registerdef _(a: int, b: int) -> int:return a + b@add.registerdef _(a: str, b: str) -> str:return a + b
使用`functools.total_ordering`装饰器(适用于具有比较方法的常量):
from functools import total_ordering@total_orderingclass MyClass:def __init__(self, value):self.value = valuedef __eq__(self, other):return self.value == other.valuedef __lt__(self, other):return self.value < other.value
请注意,Python并没有内置的常量类型,常量通常是通过命名约定来表示的,即使用全大写字母命名变量。在Python中,常量实际上是可以被修改的,但按照惯例,程序员会遵循这一约定,不修改这些变量。
