Python 3.14+ioфункция
io.Reader
протоколы
Протокол io.Reader[T] — абстрактный класс с методом read(), для аннотаций и структурных проверок isinstance/issubclass. Python 3.14+.
Синтаксис
io.Reader[T]
Появился только в 3.14 — на 3.13 и ниже обращение к io.Reader даст AttributeError, поэтому в переносимом коде пока остаются прежние аннотации вроде IO[str]. Проверка структурная: isinstance смотрит лишь на наличие метода read(), а параметр типа в рантайме не проверяется, так что Reader[str] и Reader[bytes] на этом уровне неразличимы.
Примеры
import io
r = io.StringIO('hello world')
print(isinstance(r, io.Reader)) # → True
print(r.read(5)) # → hello
print(isinstance(42, io.Reader)) # → False
print(io.Reader[str]) # → io.Reader[str]
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности