2017-05-13 4 views
-1

Zum Beispiel Ich brauche eine mehrdimensionale Liste zu erstellen, die Namen und das Alter einer Person hat, wie unten Person gezeigt = [[ 'pav', 26], [ 'sonnigen', 24]]Wie erstellt man eine multidimensionale Liste mit OOP in Python?

I möchte es mithilfe von OOP-Konzepten mit Klasse und Instanz erstellen. Ich habe den Code geschrieben, und ich weiß, dass es einen Fehler in der Syntax gibt. Bitte sagen Sie mir, was ist der Fehler und wie korrigiere ich ihn?

Unten ist der Code, den ich geschrieben habe:

class persondata: 
    def __init__(self,Name,Age): 
     self.Name=Name 
     self.Age=Age 
person=[[],[]] 
person[0]=persondata('pav',26) 
person[1]=persondata('sunny',24) 
print(person) 
+1

Sie tun müssen, um Einzug für beide 'self' Linien. – Elmex80s

+0

Ich versuchte immer noch nicht die Ausgabe richtig zu bekommen..es zeigt den Speicherort, aber nicht die Liste drucken –

Antwort

0

ich die Ausgabe properly..it immer noch nicht versucht, den Speicherplatz zeigt aber den Druck der Liste nicht

können Sie Verwenden Sie str Methode, um den Objektwert wie gewünscht zu drucken.

class persondata: 
    def __init__(self,Name,Age): 
     self.Name=Name 
     self.Age=Age 
    def __str__(self): 
     return(",".join([self.Name,str(self.Age)])) 
try: 
    person=[[],[]] 
    person[0]=persondata('pav',26) 
    person[1]=persondata('sunny',24) 
    print(*person) 
except Exception as e: 
    print(str(e)) 

Ausgang:

pav,26 sunny,24 
2

Ihre Kreation ist in Ordnung. Wenn Sie möchten, dass die Zeichenfolgendarstellung gut aussieht, fügen Sie eine __repr__-Funktion hinzu. Zum Beispiel:

def __repr__(self): 
    return repr([self.Name, self.Age]) 
0
class Intro: 

    data = [] 
    def __init__(self): 
     print ("Welcome") 

    def add(self,name,age): 
     self.data.append((name,age)) 

    def Display(self): 
     for self.name,self.age in self.data: 
      print(self.name+" "+str(self.age)) 

introduction = Intro() 
introduction.add("xyz",10) 
introduction.add("pqr",20) 
introduction.Display() 

Ausgang: xyz 10 pqr 20

this helps ...

0

Ihr Code in Ordnung ist, aber Personendaten ist ein Objekt, und wenn Sie es ausgeben Sie Siehe den Speicherort. Hier

ist eine pythonic Version des Codes

class Person: 
    def __init__(self, name, age): 
     self.name = name 
     self.age = age 

    def __repr__(self): 
     return repr([self.name, self.age]) 

people = [] 
people.append(Person('pav', 26)) 
people.append(Person('sunny', 24)) 
print(people) 

Ausgang:

[['pav', 26], ['sunny', 24]] 
Verwandte Themen