我正在用Python写一个Uno游戏,我正在设置一个Uno套牌.
_VALID_FACES = ['skip', 'draw2', 'reverse', 'wild', 'wild4'] + range(10)
Run Code Online (Sandbox Code Playgroud)
我认为这应该是好的和花花公子,没问题.但是,PyCharm坚持这个错误:
Expected type list[str] (matched generic type 'list[T]'), got 'list[int]' instead
Run Code Online (Sandbox Code Playgroud)
现在我不完全确定这意味着什么.有任何想法吗?代码运行,但警告仍在PyCharm中.
尽管您可以在 python 中拥有字符串和整数列表,但最好保持列表元素的类型一致。在您的示例中,您可以将所有元素转换为字符串:
_VALID_FACES = ['skip', 'draw2', 'reverse', 'wild', 'wild4'] + map(str, range(10))
Run Code Online (Sandbox Code Playgroud)
PyCharm读取你的代码并试图猜测你正在做什么,然后如果你做了一些违背你认为你应该做的事情,它会警告你.当你有一个庞大的代码库并且你不小心做了一些愚蠢的事情时这很有用,但是当你确切地知道你在做什么时会很烦人.
在这种情况下,你有一个完整的字符串列表,你正在添加一个整数列表.PyCharm对此感到惊讶,认为你的列表中只有字符串,而不是字符串和整数的混合.
你应该能够安全地忽略它.