用法:
@typing.runtime_checkable
將協議類標記為運行時協議。
這種協議可以與
isinstance()
和issubclass()
一起使用。當應用於非協議類時,這會引發TypeError
。這允許 simple-minded 結構檢查,非常類似於collections.abc
中的 “one trick ponies”,例如Iterable
。例如:@runtime_checkable class Closable(Protocol): def close(self): ... assert isinstance(open('/some/file'), Closable)
注意
runtime_checkable()
將隻檢查所需方法的存在,而不是它們的類型簽名。例如,ssl.SSLObject
是一個類,因此它通過了針對Callable
的issubclass()
檢查。但是,ssl.SSLObject.__init__()
方法的存在隻是為了引發帶有更多信息的TypeError
,因此無法調用(實例化)ssl.SSLObject
。3.8 版中的新函數。
相關用法
- Python typing.get_type_hints用法及代碼示例
- Python typing.Concatenate用法及代碼示例
- Python typing.Optional用法及代碼示例
- Python typing.Final用法及代碼示例
- Python typing.TypedDict.__optional_keys__用法及代碼示例
- Python typing.Protocol用法及代碼示例
- Python typing.NoReturn用法及代碼示例
- Python typing.TypedDict.__total__用法及代碼示例
- Python typing.is_typeddict用法及代碼示例
- Python typing.TypeVar用法及代碼示例
- Python typing.AsyncGenerator用法及代碼示例
- Python typing.final用法及代碼示例
- Python typing.ClassVar用法及代碼示例
- Python typing.ParamSpec用法及代碼示例
- Python typing.Literal用法及代碼示例
- Python typing.overload用法及代碼示例
- Python typing.TYPE_CHECKING用法及代碼示例
- Python typing.TypedDict用法及代碼示例
- Python typing.List用法及代碼示例
- Python typing.Generic用法及代碼示例
注:本文由純淨天空篩選整理自python.org大神的英文原創作品 typing.runtime_checkable。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。