Python Glossary English

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