ist das hier eigentlich objektorientiert oder wirr ?

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.
BlackJack

Das ist ja auch kein Attribute auf dem *Modul* `datetime` sondern auf der Klasse `datetime` *in* dem Modul `datetime`.
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

BlackJack hat geschrieben:Das ist ja auch kein Attribute auf dem *Modul* `datetime` sondern auf der Klasse `datetime` *in* dem Modul `datetime`.
--> datetime.datetime.strptime

und nimm ein kleines y
ippurk
User
Beiträge: 61
Registriert: Mittwoch 8. Juli 2009, 20:40

aaaaaaaaahhhh, roger
ippurk
User
Beiträge: 61
Registriert: Mittwoch 8. Juli 2009, 20:40

@jbs: Jo, hab ich schon verstanden, und ein kleines y führt zu einer zweistelligen Jahreszahl, was ich eigentlich vermeiden will.
nuss
User
Beiträge: 53
Registriert: Donnerstag 28. August 2008, 11:36

darf die klasse Home auch zugriff auf die eigenen instancen haben ?
wenn ja machs doch so ( oder ähnlich ):

Code: Alles auswählen

class Home(object):
    homes = []
    def __new__(cls, *args, **kwargs):
        inst = object.__new__(cls)
        cls.homes.append(inst)
        return inst
Damit ist jede instance von Home unter Home.homes zu erreichen.
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

ippurk hat geschrieben:@jbs: Jo, hab ich schon verstanden, und ein kleines y führt zu einer zweistelligen Jahreszahl, was ich eigentlich vermeiden will.

Code: Alles auswählen

date_1 = "23.4.09"
date_1 = datetime.strptime(date_str, '%d.%m.%Y')
Du hast da aber eine zweistellige Jahreszahl angegeben.
ippurk
User
Beiträge: 61
Registriert: Mittwoch 8. Juli 2009, 20:40

nochmal zum Speichern meiner vom Nutzer angelegten Daten:

Dieses Programms hier soll ja schon auch sowas wie "Datensicherung" oder "Datenrücksicherung" anbieten.

Für Leute die nicht den ganzen Thread lesen wollen: Ich hab hier eine Miethausverwaltung, wo man Häuser und deren Wohnungen als Objekte erstellen kann, sowie einen Mieter, der dann irgendwo einziehen oder ausziehen kann. Eine der Hauptfunktionen ist eine Nebenkostenabrechnung für die einzelnen Häuser, die nur noch sowas ausspuckt wie: Mieter xy hat z zuwenig gezahlt.

Im Moment arbeite ich während der Laufzeit ja nur mit meinen Instanzen, die in homes{} und tenants{} abgelegt werden, wobei in homes{} auch noch Instanzen der Wohnungen liegen, da die ja von den homes abhängig sind.
Jetzt bin ich also gedanklich soweit, daß ich mit Pickle diese zwei Dicts speichern und auch laden kann. Nur kommt mir das ziemlich hölzern vor.

Da bietet sich doch wohl eher eine Datenbank an, oder ?

Nur, um das gedanklich jetzt mal ein bißchen klarzukriegen: Kann und sollte ich in dieser Datenbank meine Instanzen ablegen oder macht man das prinzipiell eher so, nur Informationen abzuspeichern, mit denen meine Instanzen dann beim erneuten Programmstart wieder erzeugt werden ? Hab ich also nach dem Laden der Daten auf einen Schlag sämtliche Instanzen mit allen Eigenschaften wieder zur Verfügung, oder muss ich die erst erstellen ? Wie gehe ich da am besten grundsätzlich mal ran ?

Lektüreempfehlungen immer gern gesehen,
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Datenbanken sind fuer Daten immer eine gute Idee ;) Hat in dem Fall auch den Vorteil, dass man nicht an die Applikation (oder Python) gebunden ist, um die Daten eventuell auszuwerten.

Schau dir mal SQLAlchemy an, das kannst als ORM verwenden, um deine Instanzen zu sichern, aber du kannst auch auf ORM verzichten und den Datenansatz nutzen - besser als mit pure SQL.
ippurk
User
Beiträge: 61
Registriert: Mittwoch 8. Juli 2009, 20:40

ok, klingt interessant.

Bei Sql-Sachen muss man aber doch immer diesen Sql-Server laufen haben ? Kann ich das nicht irgendwie komplett innerhalb meines Programms laufen lassen. Der Nutzer soll ja später sozusagen nur auf installieren drücken müssen. Sorry, bei der sqlAlchemy Seite bin ich da erst mal noch nicht so schlau geworden, zu viele neue Begriffe da.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Es gibt Server-lose DB-Systeme, wie z.B. SQLite. Dafür gibt's auch ein Modul in der Standard-Library.

Such mal im Baord, da gabs iirc von Gerold einige Beispiel-Scripte.
ippurk
User
Beiträge: 61
Registriert: Mittwoch 8. Juli 2009, 20:40

jo, das hört sich gut an, dankedanke
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Ach ja, als Management-Tool empfehle ich gerne den SQLiteManager. Das ist ein Firefox-Plugin und daher einfachst zu installieren. Ist teilweise ein wenig buggy, aber für das einfache Anlegen und manuelle Eintragen von Daten vollkommen ausreichend.
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

ippurk hat geschrieben:Bei Sql-Sachen muss man aber doch immer diesen Sql-Server laufen haben ?
Bei sqlite nicht.
MfG
HWK

Edit: Schon wieder zu spät.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

HWK hat geschrieben: Edit: Schon wieder zu spät.
:P
SCNR ;-)
Antworten