Python 属性错误:';int';对象没有属性';输出';

Python 属性错误:';int';对象没有属性';输出';,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,我正在尝试用python编写一个用于刺激神经网络的模拟器。 网络计划由神经元和连接构建,如下所示: 连接类别: class Connection(object): connectionType = 0 weight = [[0 for x in range(1)] for x in range(9)] def __init__(): self.threshold = 0 self.connectionType = 0 神经元类别: import Connection c

我正在尝试用python编写一个用于刺激神经网络的模拟器。 网络计划由神经元和连接构建,如下所示:

连接类别:

class Connection(object):

connectionType = 0   
weight = [[0 for x in range(1)] for x in range(9)]

def __init__():
   self.threshold = 0
   self.connectionType = 0
神经元类别:

import Connection

class Neuron(object):

ID = 1
OveralPotential = 0

def __init__(self):
    global ID
    self.input = [[0 for x in range(1)] for x in range(9)]
    self.output = [[0 for x in range(1)] for x in range(9)]
    self.id = Neuron.ID
    Neuron.ID += 1

def connect(srcNeuron, dstNeuron, connectionType):
    srcNeuron.output[dstNeuron.id] = 1
    dstNeuron.input[srcNeuron.id] = 1
    Connection.Connection.connectionType = connectionType

if __name__ == "__main__":

n1 = Neuron()
n2 = Neuron()
n3 = Neuron()
print("ID of the 3rd neuron is {0}".format(n3.id))
n4 = Neuron()
n5 = Neuron()

Neuron.connect(1,3,1)
Neuron.connect(1,4,1)
Neuron.connect(1,5,1)
Neuron.connect(2,3,1)
Neuron.connect(2,4,1)
Neuron.connect(2,5,1)
但这里是stacktrace:

ID of the 3rd neuron is 3
Traceback (most recent call last):
File "C:\Program Files\Microsoft Visual Studio      12.0\Common7\IDE\Extensions\Mic
rosoft\Python Tools for Visual Studio\2.1\visualstudio_py_util.py", line   106, in
exec_file
exec_code(code, file, global_variables)
File "C:\Program Files\Microsoft Visual Studio   12.0\Common7\IDE\Extensions\Mic
rosoft\Python Tools for Visual Studio\2.1\visualstudio_py_util.py", line 82,  in
exec_code
exec(code_obj, global_variables)
File "C:\Users\Matinking\Documents\Visual Studio  2013\Projects\NeuroSimulation
\NeuroSimulation\Neuron.py", line 31, in <module>
Neuron.connect(1,3,1)
File "C:\Users\Matinking\Documents\Visual Studio  2013\Projects\NeuroSimulation
\NeuroSimulation\Neuron.py", line 16, in connect
srcNeuron.output[dstNeuron.id] = 1
AttributeError: 'int' object has no attribute 'output'
第三个神经元的ID为3 回溯(最近一次呼叫最后一次): 文件“C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Mic rosoft\Python Tools for Visual Studio\2.1\visualstudio_py_util.py”,第106行,中 执行文件 执行代码(代码、文件、全局变量) 文件“C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Mic rosoft\Python Tools for Visual Studio\2.1\visualstudio_py_util.py”,第82行,中 执行代码 exec(代码对象、全局变量) 文件“C:\Users\Matinking\Documents\Visual Studio 2013\Projects\Neuromulation \神经刺激\ Neuron.py“,第31行 神经元连接(1,3,1) 文件“C:\Users\Matinking\Documents\Visual Studio 2013\Projects\Neuromulation \神经刺激\ Neuron.py“,连接中第16行 srcneurn.output[dstneurn.id]=1 AttributeError:“int”对象没有属性“output” 我在本例中检查了可能的重复项,如:

但他们都没有给我足够的洞察力来处理上述事情。 我该怎么解决


提前感谢

函数
connect
需要两个类型为
Neuron
的对象,而不是Neuron id。您正在传递一个id,即
int
,python尝试访问输出字段。

您正在向方法传递整数值

def connect(srcNeuron, dstNeuron, connectionType):
    srcNeuron.output[dstNeuron.id] = 1
    dstNeuron.input[srcNeuron.id] = 1
    Connection.Connection.connectionType = connectionType
当你调用它的时候

Neuron.connect(1,3,1)
Neuron.connect(1,4,1)
Neuron.connect(1,5,1)
Neuron.connect(2,3,1)
Neuron.connect(2,4,1)
Neuron.connect(2,5,1)
我想你实际上是想指定神经元而不是整数

Neuron.connect(n1,n3,n1)
Neuron.connect(n1,n4,n1)
Neuron.connect(n1,n5,n1)
Neuron.connect(n2,n3,n1)
Neuron.connect(n2,n4,n1)
Neuron.connect(n2,n5,n1)

您正在使用整数参数调用方法
Neuron.connect()
,然后绑定以访问该方法第一行中的属性
.connect
。你预计会发生什么?