Speicherort

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
Brafil
User
Beiträge: 40
Registriert: Montag 17. Dezember 2007, 17:51
Wohnort: Istanbul

Donnerstag 10. April 2008, 13:30

hi, jetzt wollte ich etwas fragen. In meinem Prog gibt es bis zu 500 instanzen einer klasse. Ich wollte deshalb fragen, wo ich sie speichern kann, aber nicht
im Code. Wäre eine Datenbank (nix ahnung :? ) geeigtnet?
[b][color=blue]Python[/color] + [color=orange]Blender[/color][/b] = [i]Super[/i]

[i]"Le Python mangera Tout"[/i]

The Python is gonna eat everything

(Except for Java, there are too many fans)
Benutzeravatar
Hyperion
Moderator
Beiträge: 7472
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Donnerstag 10. April 2008, 13:44

Müssen die denn zwangsweise persistent sein? Wenn nicht - wozu speichern?
Am einfachsten wäre da wohl pickle.

Die Frage, die sich mir sofort stellt ist folgende: Nutzt Du hier Klassen als Datenspeicher? Wenn ja, solltest Du in Erwägung ziehen, die Daten in eine Datei / DB auszulagern und nur bei Bedarf zu laden / speichern.
Brafil
User
Beiträge: 40
Registriert: Montag 17. Dezember 2007, 17:51
Wohnort: Istanbul

Donnerstag 10. April 2008, 13:59

Also die Instanzen sind die Hauptobjekte. deshalb sollte ich sie doch in Datenbanken speichern? Wenn ja, wo gibts denn ein Anfängertut?
[b][color=blue]Python[/color] + [color=orange]Blender[/color][/b] = [i]Super[/i]

[i]"Le Python mangera Tout"[/i]

The Python is gonna eat everything

(Except for Java, there are too many fans)
Benutzeravatar
Hyperion
Moderator
Beiträge: 7472
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Donnerstag 10. April 2008, 14:02

Wo kommen denn die Daten für diese "Hauptinstanzen" her?
Hast Du so was in der Art:

Code: Alles auswählen

Class A:
....

a1 = A()
a2 = A()
a3 = A()
...
an = A()
Wenn ja, machst Du was falsch :-D
Du legst doch die Instanzen einer Klasse zu einem bestimmten Zweck an. Eine Instanz ohne spezielle Merkmale (sprich Attributwerte) ist ja an sich sinnlos. Also müssen diese Daten ja schon irgend wo herkommen. Es wäre hilfreich, wenn man darüber bescheid wüßte.
Brafil
User
Beiträge: 40
Registriert: Montag 17. Dezember 2007, 17:51
Wohnort: Istanbul

Donnerstag 10. April 2008, 14:05

Also die Instanzen haben schon Eigenschaften. Die müssen ja auch abgelesen werden können. Vielleicht in einer art Tabelle oder Datenbank?
[b][color=blue]Python[/color] + [color=orange]Blender[/color][/b] = [i]Super[/i]

[i]"Le Python mangera Tout"[/i]

The Python is gonna eat everything

(Except for Java, there are too many fans)
Benutzeravatar
helduel
User
Beiträge: 300
Registriert: Montag 23. Juli 2007, 14:05
Wohnort: Laupheim

Donnerstag 10. April 2008, 14:20

Brafil hat geschrieben:Also die Instanzen haben schon Eigenschaften. Die müssen ja auch abgelesen werden können. Vielleicht in einer art Tabelle oder Datenbank?
Gibt es die Instanzen jetzt schon, oder soll es die erst noch geben?
Wenn es sie schon gibt: Woher kommen sie? Poste doch mal etwas Code.
Ob Datenbank, XML, CSV - es hängt von deinem Anwendungsfall ab, was am besten geeignet ist.
Brafil
User
Beiträge: 40
Registriert: Montag 17. Dezember 2007, 17:51
Wohnort: Istanbul

Donnerstag 10. April 2008, 14:48

Das ist mal ein Beispiel:

Code: Alles auswählen

class Schuler():

    def __init__(self, name, alter, klasse, **noten)

        self.name=name ........


Peter=Schuler("Peter Sowihso", "12", "8", Deutsch=1, Mathe=2 usw...)

Karl=Schuler(...)

... (500 Schuler)
Das wird alles in einer Tabelle ausgegeben. Fragt nicht wie :) Könnte man eine Datenbank mit den Schülern und ihren Eigenschaften füllen und das Programm liest sie dann ein als hätte ich jeden einzelnen im Code selbst definiert? Wenn ja, dann wie? Wenn nicht, dann wie sonst?
[b][color=blue]Python[/color] + [color=orange]Blender[/color][/b] = [i]Super[/i]

[i]"Le Python mangera Tout"[/i]

The Python is gonna eat everything

(Except for Java, there are too many fans)
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 10. April 2008, 16:39

Brafil hat geschrieben:Könnte man eine Datenbank mit den Schülern und ihren Eigenschaften füllen und das Programm liest sie dann ein als hätte ich jeden einzelnen im Code selbst definiert?
Ja natürlich. Mittels Datenbanken oder pickle lässt sich das ja trivial lösen.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
helduel
User
Beiträge: 300
Registriert: Montag 23. Juli 2007, 14:05
Wohnort: Laupheim

Donnerstag 10. April 2008, 16:58

Kannst dir ja mal sqlite anschauen. Dann kriegst du ne Idee davon.
lunar

Donnerstag 10. April 2008, 17:44

helduel hat geschrieben:Kannst dir ja mal sqlite anschauen. Dann kriegst du ne Idee davon.
Naja, wenn man schon Objekte hat, ist es doch idiotisch, diese manuell in eine Datenbank zu speicher. Wozu gibt es ORMs?

Und nein, bitte nicht das Komplexitätsargument herausholen: SQLAlchemy ist bei einfachen Sachen nicht komplexer, eher sogar einfacher als manuelle SQL-Statements ;)
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 10. April 2008, 22:44

lunar hat geschrieben:Und nein, bitte nicht das Komplexitätsargument herausholen: SQLAlchemy ist bei einfachen Sachen nicht komplexer, eher sogar einfacher als manuelle SQL-Statements ;)
Mag sein. Doch ActiveRecord-style ORMs sind oft simpler zu verstehen als SQLAlchemy.

SQLAlchemy ist durchaus eine gute Wahl, doch ist meine Faszination davon nicht so groß, dass ich es allen uneingeschränkt empfehlen würde.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten