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