Python 3.14+ioфункция
io.Writer
протоколы
Протокол io.Writer[T] — абстрактный класс с методом write(), для аннотаций и структурных проверок isinstance/issubclass. Python 3.14+.
Синтаксис
io.Writer[T]
Проверка здесь структурная: isinstance смотрит только на наличие метода write(), поэтому поток, пишущий байты, пройдёт её ровно так же, как текстовый — параметр T нужен аннотациям, а во время выполнения ничего не контролирует и сигнатуру метода никто не сверяет. Появился протокол только в 3.14: если код должен работать на 3.13 и ниже, для аннотаций берите typing.IO/TextIO или объявляйте собственный Protocol.
Примеры
import io
w = io.StringIO()
print(isinstance(w, io.Writer)) # → True
print(w.write('hi')) # → 2
print(w.getvalue()) # → hi
print(isinstance('text', io.Writer)) # → False
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности