Python Glossary English

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Сообщить о неточности