私はPythonの初心者ですが、OO言語にはかなり精通していますが、わかりやすいコンパイルエラーに苦しんでいますが、修正方法はわかりません。Pythonクラスの関数がクラス変数を見つけることができません
はここに私のクラス
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)
そのinit関数および活性化のためのカップルのオプションを持つ非常に簡単です。トレーニングデータを読み込んだ後、次のコードでニューラルネットワークを初期化します。具体的には、outputNeuron配列を初期化するとき
Neuron.initInputNeurons(inputNeurons, value)
が、私はエラーが__inputNeuronsが存在しないことを私に語っている
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
次のエラーを取得する実行しているとき
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)
私のエラーが発生します。これは、_inputNeuronsを__init__の外の静的変数として定義した場合にも当てはまります。
Pythonでクラス変数を定義しアクセスするにはどうすればよいですか?
注:
はこれを試してみてください。 –