【问题标题】:What does this warning in PyCharm mean?PyCharm 中的这个警告是什么意思?
【发布时间】:2015-01-06 10:48:04
【问题描述】:

我正在用 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:在 Python 中这样做非常好。

标签: python pycharm


【解决方案1】:

PyCharm 会读取您的代码并尝试猜测您在做什么,然后如果您做了与它认为您应该做的相反的事情,它会警告您。这在您有一个庞大的代码库并且您不小心做了一些愚蠢的事情时很有用,但是当您确切地知道自己在做什么时可能会很烦人。

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

您应该可以放心地忽略它。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-17
      • 2011-09-25
      • 2012-02-20
      • 2020-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多