用法:
class typing.TypeVar
类型变量。
用法:
T = TypeVar('T') # Can be anything A = TypeVar('A', str, bytes) # Must be str or bytes
类型变量的存在主要是为了静态类型检查器的好处。它们用作泛型类型以及泛型函数定义的参数。有关泛型类型的更多信息,请参阅
Generic
。通用函数的工作方式如下:def repeat(x: T, n: int) -> Sequence[T]: """Return a list containing n references to x.""" return [x]*n def longest(x: A, y: A) -> A: """Return the longest of two strings.""" return x if len(x) >= len(y) else y
后一个示例的签名本质上是
(str, str) -> str
和(bytes, bytes) -> bytes
的重载。另请注意,如果参数是str
的某个子类的实例,则返回类型仍然是普通的str
。在运行时,
isinstance(x, T)
将引发TypeError
。通常,isinstance()
和issubclass()
不应与类型一起使用。类型变量可以通过传递标记为协变或逆变
covariant=True
或者contravariant=True
.看PEP 484更多细节。默认情况下,类型变量是不变的。或者,类型变量可以使用指定上限bound=<type>
.这意味着替换(显式或隐式)类型变量的实际类型必须是边界类型的子类,请参阅PEP 484.
相关用法
- Python typing.TypedDict.__optional_keys__用法及代码示例
- Python typing.TypedDict.__total__用法及代码示例
- Python typing.TypedDict用法及代码示例
- Python typing.TypeGuard用法及代码示例
- Python typing.Type用法及代码示例
- Python typing.TypeAlias用法及代码示例
- Python typing.TYPE_CHECKING用法及代码示例
- Python typing.get_type_hints用法及代码示例
- Python typing.Concatenate用法及代码示例
- Python typing.Optional用法及代码示例
- Python typing.Final用法及代码示例
- Python typing.Protocol用法及代码示例
- Python typing.NoReturn用法及代码示例
- Python typing.is_typeddict用法及代码示例
- Python typing.AsyncGenerator用法及代码示例
- Python typing.final用法及代码示例
- Python typing.ClassVar用法及代码示例
- Python typing.ParamSpec用法及代码示例
- Python typing.Literal用法及代码示例
- Python typing.overload用法及代码示例
注:本文由纯净天空筛选整理自python.org大神的英文原创作品 typing.TypeVar。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。