在Python中,如何创建不可变/可变类型变量。我有一个通用协议,它的一些方法应该改变其可变参数类型的输入,而有些则不应该。我如何在我的代码中声明这一点?
对于不可变数据类,您可以使用:
from typing import TypeVar
from dataclasses import dataclass
T = TypeVar('T')
@dataclass(frozen=True)
class ImmutableGenericClass:
value: T
# Example usage:
int_item = ImmutableGenericClass[int](value=1)
str_item = ImmutableGenericClass[str](value="example")
对于一般类型提示的不变性,请尝试:
from typing import NamedTuple, TypeVar
T = TypeVar('T')
class ImmutableGenericTuple(NamedTuple):
value: T
# Example usage:
int_item = ImmutableGenericTuple[int](value=1)
str_item = ImmutableGenericTuple[str](value="example")