我正在用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中。
答案 0 :(得分:5)
PyCharm读取你的代码并试图猜测你正在做什么,然后如果你做了一些违背它认为你应该做的事情,它会警告你。当你拥有一个庞大的代码库并且你不小心做了一些愚蠢的事情时这很有用,但是当你知道你正在做什么的时候会很烦人。
在这种情况下,你有一个完整的字符串列表,你正在添加一个整数列表。 PyCharm对此感到惊讶,认为你的列表中只有字符串,而不是字符串和整数的混合。
你应该可以安全地忽略它。
答案 1 :(得分:4)
虽然你可以在python中有字符串和整数列表,但最好保持列表元素的类型一致。在您的示例中,您可以将所有元素转换为字符串:
_VALID_FACES = ['skip', 'draw2', 'reverse', 'wild', 'wild4'] + map(str, range(10))