TypeError: ‘NoneType‘ object is not subscriptable解决办法

1.错误原因

TypeError: ‘NoneType’ object is not subscriptable

空类型对象不可以使用下标

报错代码:

# 生成大小 I*J 的矩阵,默认零矩阵
def makeMatrix(I, J, fill=0.0):
    m = []
    for i in range(I):
        m.append([fill] * J)
def __init__(self, ni, nh, no):
        # 建立权重(矩阵)
        self.wi = makeMatrix(self.ni, self.nh)
        # 设为随机值
        for i in range(self.ni):
            for j in range(self.nh):
                self.wi[i][j] = rand(-0.2, 0.2) 

报错代码是self.wi[i][j] = rand(-0.2, 0.2) ,后来发现wi对象有问题,追踪到代码self.wi = makeMatrix(self.ni, self.nh),发现makeMatrix没有返回值。修改代码为:

def makeMatrix(I, J, fill=0.0):
    m = []
    for i in range(I):
        m.append([fill] * J)
    return m

读者可以参考python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法

猜你喜欢

转载自blog.csdn.net/t18438605018/article/details/120938846
今日推荐