Python Glossary English

все Python 3ioпонятие

io.RawIOBase

абстрактные базы

Абстрактный базовый класс сырых (небуферизованных) бинарных потоков; его конкретная реализация — FileIO.

Синтаксис

issubclass(cls, io.RawIOBase)

Сырой поток в руки попадает редко: его даёт open(path, 'rb', buffering=0), а у обычного буферизованного файла он лежит в атрибуте .raw. Каждый read()/write() здесь — отдельный системный вызов, и read(n) вправе вернуть меньше n байт, даже когда файл ещё не кончился, поэтому дочитывать приходится циклом вручную; в обычном коде берут буферизованный слой, а сырой — только когда нужен полный контроль над вводом-выводом.

Примеры

import io
print(issubclass(io.FileIO, io.RawIOBase))   # → True
print(issubclass(io.RawIOBase, io.IOBase))   # → True
print(issubclass(io.BufferedReader, io.RawIOBase))   # → False
print(isinstance(io.BytesIO(), io.RawIOBase))   # → False
print(hasattr(io.RawIOBase, 'readinto'))   # → True

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности