用法:
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。