Python 文件的参数类型规范

Python argument type specification for files

我知道,例如,可以编写一个函数来让其知道其参数是 str:

def myfunc(s: str) -> None:

我搜索了 typing 的文档,但找不到任何关于文件作为参数的信息。

如何指定如下内容:

def use_file(a_file: ???) -> None:

其中 ??? 是一个二进制文件(与 open("data", "rb") 创建的一样)?

typing 模块为 file-like 对象提供特定类型。您的问题与 .

重复
from typing import IO, TextIO, BinaryIO

# Answer to the question
# If your function only accepts files opened in binary mode 
def use_file(a_file: BinaryIO) -> None:
    ...

# If your function only accepts files opened in text mode
def use_file(a_file: TextIO) -> None:
    ...

# If your function accepts files opened in both modes
def use_file(a_file: IO) -> None:
    ...