Python Glossary English

Python 3.5+typingпонятие

typing.TextIO

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

Тип текстовых файловых потоков для аннотаций.

Синтаксис

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

Это абстрактный тип-заглушка для аннотаций, а не класс для создания объектов (оттого в примере обращаются к TextIO.__name__, а не к экземпляру). Ставьте его, когда функции годится любой текстовый поток — файл из open() в текстовом режиме, io.StringIO или sys.stdout, — а не один конкретный тип файла.

Примеры

from typing import IO, TextIO
import io
print(TextIO.__name__)   # → TextIO
from typing import IO, TextIO
import io
def read_all(f: TextIO) -> str: return f.read()
print(read_all(io.StringIO('hello')))   # → hello
from typing import IO, TextIO
import io
def first_word(f: TextIO) -> str: return f.read().split()[0]
print(first_word(io.StringIO('раз два три')))   # → раз
print(issubclass(TextIO, IO))   # → True
print(isinstance(io.StringIO(), TextIO))   # → False

См. также

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