首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mypy (typeshed)拒绝将csv.excel作为返回csv.Sniffer.sniff的可能值

mypy (typeshed)拒绝将csv.excel作为返回csv.Sniffer.sniff的可能值
EN

Stack Overflow用户
提问于 2019-05-14 22:20:32
回答 1查看 57关注 0票数 0

使用mypy静态检查我的一些代码,得到了这个问题。代码示例:

代码语言:javascript
复制
import csv

d: csv.Dialect = csv.excel
d = csv.Sniffer().sniff("a")

但是在第一次赋值给d时,mypy给出了这个错误

代码语言:javascript
复制
error: Incompatible types in assignment (expression has type "Type[excel]", variable has type "Dialect")

因此,解决此问题的自然方法是更改变量的类型。

代码语言:javascript
复制
from typing import Type

import csv

d: Type[csv.Dialect] = csv.excel
d = csv.Sniffer().sniff("a")

但是现在我在对d的第二次赋值中得到了这个错误:

代码语言:javascript
复制
error: Incompatible types in assignment (expression has type "Dialect", variable has type "Type[Dialect]")

但这很奇怪,因为csv.excelsniff函数的有效返回值,所以它们必须具有相同的类型。

Python 3.7.3,mypy 0.701

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-14 22:29:40

我认为这是typeshed中的一个错误:我引发了一个issue

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56132640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档