为什么 mypy 会报错:生成器有不兼容的项目类型“Sequence[str]”?

问题描述 投票:0回答:1

我已经使用 mypy 对

rbast.py
进行了类型检查 这篇文章

https://mypy-play.net/?mypy=latest&python=3.12&gist=19931c644949c29b715b797a90b59a01

它给出了三个错误。前两个是显而易见的,但第三个是:

main.py:38: error: Generator has incompatible item type "Sequence[str]"; expected "str"  [misc]

我需要如何更改代码来修复此错误?

python mypy
1个回答
0
投票

这是有问题的代码:

        for arg_repr in product(*arg_reprs, *kw_reprs):
            arg_list = ", ".join(
                f"{arg[0]}: {arg[1]}" if isinstance(arg, tuple) else arg
                for arg in arg_repr
            )

product
产生元组,因此
arg
是一个元组。目前尚不清楚
if isinstance(arg, tuple) else arg
的用途,您应该能够完全删除整个片段。 mypy 的问题似乎是
else arg
可能会发生,在这种情况下你的生成器包含一些元组,而不仅仅是字符串。

© www.soinside.com 2019 - 2024. All rights reserved.