今天敲代码的时候,写了以下代码用来纠错:
def checkValue(value,standardLen):
if len(value)!=standardLen:
temp=[" "]*(standardLen-len(value))
return value.extend(temp)
else:
return value
但是后面一直报错,TypeError: 'NoneType' object is not subscriptable
。Debugger模式看了一会,发现应该是这里返回的问题。
搜了一圈,根据
- stack overflow-Python - Why does extend() and append() return None (void)? [duplicate]
- 菜鸟教程-Python List extend()方法
list的append和extend方法都是没有返回值的,都是对原列表进行原地操作,所以如果想直接return 就会产生None。
所以正确的做法是:先完成extend操作或者append操作,再去返回。
value.extend(temp)
return value