все Python 3ioпонятие
io.TextIOBase
абстрактные базы
Абстрактный базовый класс текстовых потоков (StringIO, объект открытого текстового файла); работает со str, а не bytes.
Синтаксис
issubclass(cls, io.TextIOBase)
Класс нужен для проверок типа и для наследования, напрямую его не создают: настоящие текстовые потоки — это StringIO и TextIOWrapper (именно TextIOWrapper возвращает open() в текстовом режиме, им же являются sys.stdin и sys.stdout). Практический смысл различия в том, что в текстовый поток пишется только str: попытка отдать туда bytes даёт TypeError, а бинарные потоки (BytesIO, BufferedReader) принимают наоборот только bytes. Ещё одно следствие — у текстового потока есть encoding и newlines, то есть перекодировка и трансляция переводов строк уже выполнены за вас.
Примеры
import io
print(issubclass(io.StringIO, io.TextIOBase)) # → True
print(issubclass(io.TextIOWrapper, io.TextIOBase), issubclass(io.BytesIO, io.TextIOBase)) # → True False
s = io.StringIO('hello')
print(isinstance(s, io.TextIOBase), s.read()) # → True hello
print(io.StringIO().write(b'x')) # → TypeError
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности