Python 返回生成器表达式时出现Mypy错误
我有这样一个函数:Python 返回生成器表达式时出现Mypy错误,python,type-hinting,mypy,Python,Type Hinting,Mypy,我有这样一个函数: def foo(some_list: List[Any]) -> Generator[Any, None, None]: return (element for element in some_list) 根据文档的说明,这应该是几种正确的方法之一,以键入提示此函数返回值。然而mypy抱怨它得到了一个迭代器[Any]作为返回值: error: Incompatible return value type (got "Iterator[Any]", expect
def foo(some_list: List[Any]) -> Generator[Any, None, None]:
return (element for element in some_list)
根据文档的说明,这应该是几种正确的方法之一,以键入提示此函数返回值。然而mypy抱怨它得到了一个迭代器[Any]
作为返回值:
error: Incompatible return value type (got "Iterator[Any]", expected "Generator[Any, None, None]")
这是mypy中的一个错误还是我忽略了什么?我认为这可能是一个错误——问题似乎是mypy将生成器理解的类型推断为迭代器[Any]
(我同意这似乎是错误的)。这之后会引起问题,因为Iterator[Any]
不是Generator[Any,None,None]
的有效子类型——事实上,情况正好相反。我会尝试在mypy问题跟踪器上提交错误报告?好的,完成: