Использование mypy для статической проверки части моего кода и получения этой проблемы.Пример кода:
import csv
d: csv.Dialect = csv.excel
d = csv.Sniffer().sniff("a")
, но mypy выдает эту ошибку в первом присваивании d
:
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