PyCharm奇怪类型警告

2022-02-23 00:00:00 python pycharm

问题描述

为什么以下代码:

v = [None for _ in range(3)]
v[-1] = 0                       <<<

告诉我这个?

意外类型: (int,int) 可能的类型: (int,无) (切片,可重复[无]) .


解决方案

根据[Python 3.Docs]: Built-in Types - Lists(强调是我的):

列表是可变序列,通常用于存储同类项目的集合(其中精确的相似程度将因应用程序而异)。

int和NoneType被认为不是同构的(通过PyCharm的代码检查),因此出现警告。解决此问题的最简单方法是使用ints:

填充列表
v = [0 for _ in range(3)]  # [0] * 3  # Shorter
v[-1] = 0

作为替代方案,您可以将元组用作异类项目容器(正如@JeyekSolomon指出的那样),但请记住元组是不可变的(一旦创建,就不能更改)。

相关文章