根据PEP 484,在现代版本的Ppython中,可以使用函数注释进行静态类型分析.通过打字模块可以轻松实现这一点.
现在我想知道如何向"文件流"提供"类型提示".
def myfunction(file: FILETYPE): pass with open(fname) as file: myfunction(file)
我会插入FILETYPE
什么?
使用根本不明确的print(type(file))
回报
.
是不是有通用的"文件"类型?
您可以使用typing.IO
,typing.TextIO
和typing.BinaryIO
表示不同类型的I/O流.引用文档:
班级打字.IO
I/O流类型的包装器命名空间.
这定义了泛型类型
IO[AnyStr]
和别名TextIO
, 分别BinaryIO
用于和.这些代表I/O流的类型,例如 返回的.IO[str]
IO[bytes]
open()
这些类型也直接访问的
typing.IO
,typing.TextIO
和
typing.BinaryIO
.
我想您想io.IOBase
:“为所有I / O类提供抽象基类,作用于字节流。”
请注意,这还包括诸如io.StringIO
和的内存中流io.BytesIO
。有关详细信息,请阅读模块io
上的文档。