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指出的那样),但请记住元组是不可变的(一旦创建,就不能更改)。
相关文章