【问题标题】:mypy (typeshed) rejects csv.excel as a possible value for the return of csv.Sniffer.sniffmypy (typeshed) 拒绝 csv.excel 作为返回 csv.Sniffer.sniff 的可能值
【发布时间】:2019-05-14 14:20:31
【问题描述】:

使用 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.excelsniff 函数的有效返回,所以它们肯定具有相同的类型。

Python 3.7.3,mypy 0.701

【问题讨论】:

    标签: python-3.x csv mypy typeshed


    【解决方案1】:

    我认为这是typeshed 中的一个错误:我提出了issue

    根据typeshedSniffer.sniff 返回一个csv.Dialect 类型的值,而实际上它返回一个Type[csv.Dialect] 类型的值

    【讨论】:

      猜你喜欢
      • 2017-04-27
      • 2016-09-27
      • 1970-01-01
      • 2020-06-09
      • 1970-01-01
      • 2016-10-16
      • 1970-01-01
      • 2022-06-14
      相关资源
      最近更新 更多