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:
...
我知道,例如,可以编写一个函数来让其知道其参数是 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:
...