es wird ein neues Product erzeugt, dann wird der benötigte Input gesammelt (ebenfalls Products) und diese werden dann an das neue Product angehängt. Allerdings akkumulieren sich die Inputs.
Also wenn ich z.b. im 2. Schleifendurchgang NewProduct erzeuge, dann sind die Inputs aus dem vorherigen Schleifendurchlauf schon in der Product-eigenen List NewProducts.ComponentsAr...das sollte doch dann eig wieder leer sein...zumindes hat es per default den Wert [].
Warum wird die Referenz hier nicht gelöscht?
Code: Alles auswählen
for i in range(self.batchSize):
NewProduct=Product(self.product)
print NewProduct.ComponentsAr
for input,amount in self.InputAr:
def getAmount(buff):
result=[]
counter=0
for x in buff:
if counter < amount and x.name == input:
result.append(x)
counter += 1
if counter >= amount:
break
return result
# yield belegt die list namens self.got mit Werten (Product Instanzen), die aus self.Preparationation
# entnommen werden
yield get,self,self.Preparation,getAmount
print "got %s" %self.got # liefert
NewProduct.ComponentsAr.extend(self.got) # hier werden die Input Products angehängt
print "%s: creation %s" %(now(),NewProduct.ComponentsAr)