PyCharm中的这个警告是什么意思?

6
我正在使用Python编写Uno游戏,目前正在设置Uno牌组。
_VALID_FACES = ['skip', 'draw2', 'reverse', 'wild', 'wild4'] + range(10)

我认为这应该没问题,但是PyCharm坚持出现以下错误:
Expected type list[str] (matched generic type 'list[T]'), got 'list[int]' instead

现在我不完全确定这是什么意思。有什么想法吗?代码可以运行,但PyCharm中仍然有警告。


你正在将一个字符串列表添加到一个整数列表中,你确切地期望什么? - EdChum
@EdChum:在Python中这样做是完全可以的。 - damd
2个回答

8

PyCharm读取您的代码并尝试猜测您正在做什么,如果您做了一些与其预期不符的事情,它会发出警告。当您有一个大型代码库并且意外地做了一些愚蠢的事情时,这很有用,但当您确切知道自己在做什么时,可能会很烦人。

在这种情况下,您有一个包含字符串的列表,并且您正在将一个整数列表添加到其中。 PyCharm对此感到惊讶,认为您的列表中只有字符串,而不是字符串和整数的混合。

您应该可以安全地忽略它。


6

虽然在Python中可以使用字符串和整数列表,但最好保持列表元素类型的一致性。在您的示例中,您可以将所有元素转换为字符串:

_VALID_FACES = ['skip', 'draw2', 'reverse', 'wild', 'wild4'] + map(str, range(10))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接