BlackJack hat geschrieben:Aus OOP-Sicht könnte man sich auch fragen, ob so ein `date` nicht eventuell "seinen Buchstaben" kennen könnte.
Eben das möchte ich mit dieser Methode erreichen. 'date_is' ist eine Methode von Entry() und soll zurückgeben, um was es sich bei einem date innerhalb des entrys handelt. Dem Entry()-Exemplar ist ja lediglich sein Beginn, seine Dauer und ein eventuelles Recurrence()-Exemplar bekannt.
Ein date-Objekt, das unter anderem seine Position ('b', 'd' oder 'r') kennt, kann es IMHO so nicht geben, da zu einem Datum mehrere entries existieren können.
Um ein Datum darzustellen, habe ich eine DaySheet()-Klasse gemacht, deren Exemplare alle zu einem Datum gehörenden entries sammeln.
Aber wie immer ich das alles strukturiere... irgendwo muss die Position ermittelt werden. Ich dachte auch schon daran, den entries ein Attribut 'position' zu spendieren, das bei einer 'is_match'-Abfrage, die ja base, duration und recurrence untersucht, auf das jeweilige Ergebnis gesetzt wird. Hat halt den 'Haken', dass dieses Attribut erst nach einer 'is_match'-Abfrage verlässliche Informationen liefert. 'is_match' müsste also sowohl bei der Erstellung wie auch jeder Attributänderung aufgerufen werden. Nicht so schön, oder?
Xynon1 hat geschrieben:... hier mal ein Beispiel, wie ich mir das ungefähr vorstellen könnte
Letztlich das gleiche mit einem dict. Da kommt mir, bevor ich das Problem überhaupt abgeschlossen habe, schon gleich wieder die Frage in den Sinn: Welche von beiden Möglichkeiten wird wohl die Schnellere sein...
mutetella
EDIT: Das mit dem 'position'-Argument ist totaler Schwachsinn... Dadurch hätte das Entry()-Exemplar eine Information, die sich lediglich auf die letzte durchgeführte 'is_match'-Abfrage bezieht. "Wo" sich ein Entry()-Exemplar befindet, kann das Entry aus genannten Gründen erstmal nicht wissen, außer es würde im voraus alle date's ermitteln, an denen es auftritt. Und das ist IMHO nicht praktikabel.