Objekterweiterung / Vererbung
Verfasst: Samstag 11. August 2012, 15:16
Hallo,
ich möchte das datetime.timedelta um eine Funktion erweitern. Und zwar um die total_seconds() funktion, welche "erst" ab Python 2.7 vorhanden ist. Da ich auf Py2.5 basierend schreiben MUSS, bin ich daran gebunden mir diese funktion selbst irgendwie an datetime.timedelta anzuknüpfen.
Realisiert habe ich das ganze dann so:
Alles schön und gut und scheint auch soweit zu funktionieren.
Mein Problem an der sache ist nun:
Wenn ich 2 datetime.datetime objekte voneinander subtrahiere
Erhalte ich nach wie vor das alte datetime.timedelta objekt (ohne die total_seconds funktion).
Gibt es denn eventuell irgendwelche alternativen dem datetime.datetime objekt zu sagen, dass er das NEUE timedelta objekt zurück werfen soll oder muss ich tatsächlich (wie ich vermute) das datetime.datetime objekt umschreiben (durch weitere vererbung bzw. überschreiben der bestimmten funktionen), bis es meinen vorstellungen entspricht?
Ach ja, bevor ich es vergesse: Falls die "neue" Lösung zu komplex sein sollte, bleibe ich doch lieber bei meiner alten Variante und zwar einfach eine "globale" total_seconds funktion zu erstellen
Grüße aus dem Schwabenland.
ich möchte das datetime.timedelta um eine Funktion erweitern. Und zwar um die total_seconds() funktion, welche "erst" ab Python 2.7 vorhanden ist. Da ich auf Py2.5 basierend schreiben MUSS, bin ich daran gebunden mir diese funktion selbst irgendwie an datetime.timedelta anzuknüpfen.
Realisiert habe ich das ganze dann so:
Code: Alles auswählen
import datetime
class NewTimedelta(datetime.timedelta):
""" Adds total_seconds() function to datetime.timedelta """
def total_seconds(self):
return (self.days * 86400) + self.seconds
Mein Problem an der sache ist nun:
Wenn ich 2 datetime.datetime objekte voneinander subtrahiere
Code: Alles auswählen
# 2 beliebige datetime.datetime objekte
zeitpunkt1 - zeitpunkt2
Gibt es denn eventuell irgendwelche alternativen dem datetime.datetime objekt zu sagen, dass er das NEUE timedelta objekt zurück werfen soll oder muss ich tatsächlich (wie ich vermute) das datetime.datetime objekt umschreiben (durch weitere vererbung bzw. überschreiben der bestimmten funktionen), bis es meinen vorstellungen entspricht?
Ach ja, bevor ich es vergesse: Falls die "neue" Lösung zu komplex sein sollte, bleibe ich doch lieber bei meiner alten Variante und zwar einfach eine "globale" total_seconds funktion zu erstellen

Grüße aus dem Schwabenland.