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