Python 类型提示:如何指定文件指针作为参数?

scr*_*ibu 7 types python-3.x

我正在编写一个函数,它将文件指针作为参数并写入它。我想为该参数添加类型提示:

def write_some_stuff(fp: _io.TextIOWrapper):
    ...
Run Code Online (Sandbox Code Playgroud)

_io.TextIOWrapper是什么type(open(...))给了我。

我还应该使用其他东西吗?

kla*_*ann 8

您应该使用typingPython 3.5 中引入的模块: typing.TextIO最适合这种情况。

通用类型IO[AnyStr]及其子类表示 I/O 流的类型TextIO(IO[str])BinaryIO(IO[bytes])例如由open().

在你的例子中:

from typing import TextIO

def write_some_stuff(fp: TextIO):
    ...
Run Code Online (Sandbox Code Playgroud)