I'm new to python, but fairly familiar with OO languages, and I'm struggling with a compilation error that is clear but that I don't understand how to fix.
Here is my class
class Neuron():
def __init__(self):
self.__output = 0
self.__inputNeurons = []
def initInputNeurons(neuronArray, initialWeight=0):
for neuron in neuronArray:
__inputNeurons.append((neuron, initialWeight))
def activateFromInput(value):
output = value;
def activateFromNeurons(activationFunction, threshold=1):
sumWeightedInputs = 0
for connection in __inputNeurons:
sumWeightedInputs += connection[0].output * connection[1]
output = activationFunction(sumWeightedInputs, threshold)
Its fairly simple with an init function and a couple options for activation. I initialize the neural network with the following code after reading in my training data .
inputNeurons = []
for value in trainingCharacterVecs[0]:
inputNeurons.append(Neuron())
outputNeurons = []
for value in range(7):
print(value);
neuron = Neuron()
Neuron.initInputNeurons(inputNeurons, value)
outputNeurons.append(neuron)
My error occurs when initializing the outputNeuron array, specifically when running
Neuron.initInputNeurons(inputNeurons, value)
I get the following error
Traceback (most recent call last):
File "./simpleNet.py", line 88, in <module>
Neuron.initInputNeurons(inputNeurons, value)
File "./simpleNet.py", line 62, in initInputNeurons
__inputNeurons.append((neuron, initialWeight))
NameError: name '_Neuron__inputNeurons' is not defined
The error is telling me that __inputNeurons does not exist. This is also the case when I define _inputNeurons outside the __init__ function as a static variable.
How should I be defining and accessing class variables in python?