奇怪的bug——1. return list.append()/extend()方法返回None

今天敲代码的时候,写了以下代码用来纠错:

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模式看了一会,发现应该是这里返回的问题。

搜了一圈,根据

list的append和extend方法都是没有返回值的,都是对原列表进行原地操作,所以如果想直接return 就会产生None。

所以正确的做法是:先完成extend操作或者append操作,再去返回。

value.extend(temp)
return value

猜你喜欢

转载自blog.csdn.net/Castlehe/article/details/110949537