2017-01-14 2 views
1

Add Summe() ist die Unterklasse der Klasse Neuron, ich habe einige Schwierigkeiten bei der Verwendung von Schleife, um alle Elemente der Eingänge Array hinzufügen.Python: Wie alle Elemente aus einer Liste in der Klasse

+0

Können Sie näher erläutern, was diese Schwierigkeiten sind? –

+1

Wenn die Probleme, die Sie sehen, dass Sie mehr ausgehende Neuronen als erwartet haben, lesen Sie den ersten Abschnitt von [this] (http://amir.rachum.com/blog/2013/07/06/python-common-newbie- Fehler-Teil-1 /) Blogpost. –

Antwort

2
class Add(Neuron): 

    def __init__(self, *inputs): 
     Neuron.__init__(self, inputs) 

    def forward(self): 
     self.value = 0 
     for n in self.inbound_neurons: 
      self.value = self.value + n.value 

     return(self.value) 

Die Funktion ‚Vorwärts‘ in Klasse hinzufügen hat eine Schleife zu fassen alle Elemente von inbound_neurons.

1

Firt diese Zeile Code aus sollte sein:

for n in self.inbound_neurons: 
     self.outbound_neurons.append(self) 

self.inputs wurde nie in der Klasse definiert. Um durch die Eingaben Schleife, dann würden Sie haben müssen:

def __init__(self, *inputs): 
     self.inputs = inputs 
     Neuron.__init__(self, inputs) 

Aber es sieht aus wie Eingaben eine Liste mit zwei Elementen sein würde, eine andere Liste und vielleicht einen String drin. Diese werden nicht zusammenkommen. Es sieht stattdessen so aus, als würden Sie die Summe von self.inbound_neurons summieren.

+0

Danke, das ist eine gute Antwort. Da ich mit der Verwendung der Klasse und der Unterklasse in Python nicht vertraut bin, möchte ich alle Elemente in den "Eingängen" in der Unterklasse Add summieren. –

1

Es hängt nicht mit Ihrer Frage zusammen, aber SEHR wichtig: Sie sollten keine veränderlichen Datentypen (als Liste) für Funktions-/Methodenvorgaben verwenden.

Ihr Code wie folgt aktualisiert werden soll:

class Neuron: 
    def __init__(self, inbound_neurons=None, label=''): 
     self.inbound_neurons = inbound_neurons or [] 
     # ... 

Warum Sie auf diese Weise erklärt wird hier tun sollten: "Least Astonishment" and the Mutable Default Argument

Verwandte Themen