Liste von Objekten erstellen (kenne nur Turbo Pascal)

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
floatingbrainiac
User
Beiträge: 2
Registriert: Dienstag 9. Januar 2007, 13:36

Dienstag 9. Januar 2007, 14:00

Hallo!

Ich bin neu bei Python und wage mich schon gleich an eine größere Sache. Dafür würde ich gerne eine Liste (s.u.) von Objekten auf möglichst einfache Art erstellen.
Unter Turbo Pascal hätte ich das so gemacht:

Code: Alles auswählen

TYPE tObj =OBJECT
  c:char;
  ziffer:array[1..10] of byte;
END;

liste:array[1..10] of tObj;
Unter Python bin ich nur auf umständliche Lösungen gekommen, wahrscheinlich fehlt mir die strenge Variablendeklaration von TP - die hatte ja auch was für sich... 8)

Wäre nett wenn mir jemand weiterhelfen könnte.
Gruß,
floatingbrainiac
Benutzeravatar
C4S3
User
Beiträge: 292
Registriert: Donnerstag 21. September 2006, 10:07
Wohnort: Oberösterreich

Dienstag 9. Januar 2007, 14:21

Hi!

Ich glaube du denkst zu kompliziert!

Du kannst ganz einfach mit einem [wiki=sortiertes_Dictionary]Dictionary[/wiki] oder mit einer Liste machen, denke ich.

Ich würde mir ne kleine Klasse machen und dann Instanzen dieser Klasse zur Liste (oder zum Dict) hinzufügen.

Code: Alles auswählen

meine_Liste = []    # wir erstellen eine leere Liste

class Person(object):       # eine Klasse, die Person heisst
    def __init__(self, name, email):
        self.name = name
        self.email = email

name = raw_input("Name:")    #wir Fragen Name und Email der Person ab
mail = raw_input("Mail:")

meine_Liste.append(Person(name, mail)) # wir fügen ein neues Objekt hinzu.
Einfach speichern und laden kannst du dann mit dem Modul "Pickle"!

EDIT: ich habe mich da jetzt ein wenig verbessert. Zu schnelles Posten ist nicht gut - die Sätze ergeben oft gar keinen Sinn. ^^
Gruß!
BlackJack

Dienstag 9. Januar 2007, 19:18

Die einfachste Umsetzung wäre wohl:

Code: Alles auswählen

class Object(object):
    def __init__(self, character, ziffern):
        self.character = character
        self.ziffern = ziffern


def main():
    liste = list()
floatingbrainiac
User
Beiträge: 2
Registriert: Dienstag 9. Januar 2007, 13:36

Freitag 19. Januar 2007, 13:01

Hallo C4S3 und BlackJack!

Danke für eure Hilfe! Im Endeffekt habe ich nun mit Dictionaries gearbeitet!
Hintergrund ist, dass ich ein Programm schreibe, das Aufgaben nach dem Schema "send+more=money" lösen soll. Jedem Buchstaben soll also eine Liste möglicher Zahlen zugeordnet sein. Also nutze ich den Buchstaben als keyword des Dicts.

Gruß,
floatingbrainiac
Antworten