数组中没有属性错误的Python dict

数组中没有属性错误的Python dict,python,neural-network,Python,Neural Network,我使用下面的代码来显示数组 net = NeuralNetwork(4, 28 * 28, [128, 64, 10]) print(net(1).w) 在网络文件中 def __call__(self, counter): return self.params[counter] 在init中,我使用 self.params = [] np.random.seed(1) for i in range(len(neurons_

我使用下面的代码来显示数组

net = NeuralNetwork(4, 28 * 28, [128, 64, 10])
print(net(1).w)
在网络文件中

  def __call__(self, counter):           
        return self.params[counter]
在init中,我使用

self.params     = [] 
np.random.seed(1)
        for i in range(len(neurons_per_layer)):
            w = np.random.randn(2,2)
            b = np.zeros([2, 1])
            self.params.append({"w" : w, "b" : b})

        return
然而,我得到了错误

'dict' object has no attribute 'w'
print(net(1.w)
中,您试图访问
dict
的属性
w
,而
dict
没有该属性

我想你真正想要的是
print(net(1)['w'])


总之,您得到的是
“dict”对象没有属性“w”
,因为您试图从
dict
调用属性,在本例中是
w
,而
dicts
没有名为
w
的属性,您要在
dict
上检索键的值
w
字典有一组键和一组值

通过键访问值是
dict[key]
使用
dict.key
尝试从类dict访问属性

如果您希望通过
instance.key
方法展示相同的行为,则需要包装字典或创建新类


否则,只需使用python公式
dict[key]

我想打印(net(1).w),我如何修改我的代码来显示这种行为。@MuhammadUmar:
print(net(1)['w'])
@El我不想打印(net(1)['w']),是的,我知道我的代码会这样做,但我想退出我提到的行为,如何修改我的代码。你的意思是,你希望首先放入
self.params
的东西实际具有
.w
属性?然后,您需要将其设置为具有该属性的对象,而不是使用
dict
。例如,通过编写另一个类来表示它。除了使用类之外,还有其他方法可以实现这种黑客行为,例如重载
\uuu getattr\uuu
。(我认为
Collections.namedtuples
recordtype
也可以在这里使用?)