2017-03-08 6 views
0

Ich möchte zwei Objekte einer Klasse erstellen. Mit diesen beiden Objekten möchte ich einige Zahlen in eine Liste eingeben, die ein Mitglied der Klasse ist. Nach Eingabe der Daten wird der Inhalt der Liste angezeigt. Einfacher Code. Aber die Ausgabe war nicht was ich will.Mehrere Objekte in Python

class Demo: 
    arr = [] 
    n = 0 
    def __init__(self,s): 
     self.n=s 
    def fill(self): 
     print("Enter elements in array ") 
     for i in range(self.n): 
      x=input() 
      self.arr.append(x) 
    def show(self): 
     for i in range(self.n): 
      print(self.arr[i]) 



obj1 = Demo(5) 
obj2 = Demo(3) 
obj1.fill() 
obj2.fill() 
print("Data from first Object") 
obj1.show() 
print("Data from second object") 
obj2.show() 
+1

Wie unterscheidet sich das Programmverhalten von dem, was erwartet wird? – Crispin

+1

Sie scheinen Ihre Ausgabe vergessen zu haben, wenn Sie diese –

Antwort

0

Sie haben sollten:

def __init__(self,s): 
    self.n=s 
    self.arr = [] 

von arr im Körper der Klasse zu schaffen (und nicht in dem Initialisierer), wird es selbst einen Teil der Klasse - von allen Instanzen gemeinsam genutzt.

+0

ausführen Danke. Es klappt.... –