Array of Objekts

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.
outi
User
Beiträge: 2
Registriert: Mittwoch 17. Mai 2006, 17:19

Array of Objekts

Beitragvon outi » Mittwoch 17. Mai 2006, 17:26

Hi,
ich komme ursprünglich aus der Java Ecke und versuche mich gerade mit Python anzufreunden was auch in weiten Teilen schon gelungen ist ;). Leider stellt mich die OOP noch etwas vor Fragen. Ich wollte das Beispielprogramm aus dem ByteOPython Buch schreiben. Es geht daraum ein Adressbuch zu Programmieren. Da man das Ganze ohne DB realisieren soll, hätte ich in Java nun ein Array of Objekts angelegt, kann ich sowas auch in Python realisieren oder gibt es andere Möglichkeit das Problem der Instanzerzeugung zur Laufzeit zu realisieren.

Afaik kann man den Datentyp der Arrayfelder zu Anfang festlegen.
array.append(Klasse()) funkt auch nur solang man nur ein Objekt hat und das ist ja nicht Sinn der Sache :).

Hoffe ihr könnt mir helfen.
Benutzeravatar
Gromit
User
Beiträge: 51
Registriert: Montag 8. Mai 2006, 19:07

Beitragvon Gromit » Mittwoch 17. Mai 2006, 17:36

Das Macht wenig Sinn.

Immer, wenn du einen Eintrag hinzufügst, rufst du append mit dem neunen Adress-Objekt auf. Listen sind, was die Länge angeht, komplet dynamisch.

Es sei noch auf das pickle- bzw. cPickle-Modul hingwiesen um das ganze dann zu speichern: http://docs.python.org/lib/module-pickle.html
outi
User
Beiträge: 2
Registriert: Mittwoch 17. Mai 2006, 17:19

Beitragvon outi » Mittwoch 17. Mai 2006, 17:40

Ja aber wie erstelle ich ein neues "Adress-Objekt" zur Laufzeit?
Benutzeravatar
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Beitragvon Joghurt » Mittwoch 17. Mai 2006, 18:08

Auch ich verstehe nicht, was du meinst und was dein Problem ist...
Du kannst in Listen und Maps alles packen, was du willst:

Code: Alles auswählen

class Foo:
  pass

meindict = {"abc": 42,
"foo": "bar"
"wurz": Foo() }

liste = []
liste.append(Foo())
liste.append(4)
liste.append(Foo())
meindict["blabla"] = [Foo(), 42]


Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], Google [Bot]