使用mypy静态检查我的一些代码,得到了这个问题。代码示例:
import csv
d: csv.Dialect = csv.excel
d = csv.Sniffer().sniff("a")但是在第一次赋值给d时,mypy给出了这个错误
error: Incompatible types in assignment (expression has type "Type[excel]", variable has type "Dialect")因此,解决此问题的自然方法是更改变量的类型。
from typing import Type
import csv
d: Type[csv.Dialect] = csv.excel
d = csv.Sniffer().sniff("a")但是现在我在对d的第二次赋值中得到了这个错误:
error: Incompatible types in assignment (expression has type "Dialect", variable has type "Type[Dialect]")但这很奇怪,因为csv.excel是sniff函数的有效返回值,所以它们必须具有相同的类型。
Python 3.7.3,mypy 0.701
发布于 2019-05-14 22:29:40
我认为这是typeshed中的一个错误:我引发了一个issue
根据typeshed的说法,Sniffer.sniff返回一个csv.Dialect类型的值,而实际上它返回一个Type[csv.Dialect]类型的值
https://stackoverflow.com/questions/56132640
复制相似问题