编程语言
首页 > 编程语言> > python – 如何键入注释csv.writer返回的对象?

python – 如何键入注释csv.writer返回的对象?

作者:互联网

我想将类型注释应用于返回的csv.writer对象,以符合更大的代码库.不幸的是我无法弄清楚拟合返回类型.

>>> import csv
>>> writer = csv.writer(open('outfile.csv', 'w'))
>>> type(writer)
<class '_csv.writer'>

如果我尝试使用此类名:

>>> import _csv
>>> writer: _csv.writer = csv.writer(open('outfile.csv', 'w'))

我收到以下mypy错误:

Invalid type "_csv.writer"

有人知道在这种情况下使用哪种类型.当然我可以使用打字.但是这会使类型注释的意义无效.

解决方法:

通常当事情表现得很奇怪时,这是一个符号类型并不完全映射到运行时.如果你看_csv in typeshed,你会看到类型名为_writer.它也在csv中重新导出.因此,您应该将注释更改为csv._writer.

标签:python,mypy
来源: https://codeday.me/bug/20190522/1152793.html