Python Glossary English

Python 3.5+typingпонятие

typing.BinaryIO

потоки ввода-вывода

Тип бинарных файловых потоков (открытых в режиме 'b') для аннотаций.

Синтаксис

def f(stream: typing.BinaryIO) -> None: ...

По сути это IO[bytes]: то, что возвращает open(path, 'rb'), и работает оно с bytes, а не str — для текстовых потоков есть отдельный TextIO. Сам класс не инстанцируют и не наследуют, он нужен только как аннотация типа.

Примеры

from typing import IO, BinaryIO
import io
print(BinaryIO.__name__)   # → BinaryIO
print(issubclass(BinaryIO, IO))   # → True
from typing import IO, BinaryIO
import io
def read_head(f: BinaryIO) -> bytes: return f.read(4)
print(read_head.__annotations__['f'] is BinaryIO)   # → True
print(read_head(io.BytesIO(b'binary data')))   # → b'bina'
print(isinstance(io.BytesIO(), BinaryIO))   # → False

См. также

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