Funktionsname gesucht...

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
mutetella
User
Beiträge: 1690
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

Freitag 17. Januar 2014, 12:17

Hallo,

ich habe eine Klasse `DateTime` die von `datetime` erbt. Die Klasse besitzt ein Attribut `has_time`, das je nachdem, ob ich ein Exemplar mit (y, m, d, H, M) oder nur mit (y, m, d) erstelle auf `True` oder `False` gesetzt wird. Bekommt das Exemplar bei der Erstellung keine Zeit, wird diese zunächst auf (0, 0) gesetzt. Die Klasse soll nun folgende Methode erhalten

Code: Alles auswählen

def dependently_replace(self, hour, minute):
    if self.has_time:
        return self
    return self.replace(hour=hour, minute=minute)
`dependently_replace` ist doch total bescheuert! Mir fällt einfach nix gescheites ein... :(

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
DasIch
User
Beiträge: 2519
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Freitag 17. Januar 2014, 12:55

replace_if_time?
Benutzeravatar
Hyperion
Moderator
Beiträge: 7477
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Freitag 17. Januar 2014, 13:12

DasIch hat geschrieben:replace_if_time?
Hier aber eher ``replace_if_not_time`` ;-)

Wie wäre es denn mit ``replace_gently``? Oder ``replace_if_needed``?
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
N317V
User
Beiträge: 504
Registriert: Freitag 8. April 2005, 13:23
Wohnort: München

Freitag 17. Januar 2014, 13:29

Das ist also eine Methode, die die Zeit auf einen mitgegebenen Wert setzt oder eben nicht. Und abhängig davon gibt sie entweder self zurück oder was auch immer die replace-Methode zurückgibt. Ich weiß nicht, irgendwie scheint mir das alles nicht so durchdacht. Warum machst Du nicht eine set_time-Methode, die Du von vornherein nur aufrufst, wenn hour und minute 0 sind? Oder hab ich jetzt nicht verstanden was Du bezweckst?
Es gibt für alles eine rationale Erklärung.
Außerdem gibt es eine irrationale.

Wie man Fragen richtig stellt
BlackJack

Freitag 17. Januar 2014, 13:42

@N317V: Du berücksichtigst dabei das `has_time`-Flag nicht. Denn Stunde und Minute können ja auch mit gesetztem Flag 0 sein, das ist ja ein gültiger Wert und taugt somit nicht als Kennzeichen für „keine Zeit”.
mutetella
User
Beiträge: 1690
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

Freitag 17. Januar 2014, 13:55

@N317V
time(0, 0) kann ja eine gewollt oder per default gesetzte Zeit sein. Lässt sich also so nicht unterscheiden, woher die kommt.

`replace_gently` finde ich bis jetzt ganz gut...

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Benutzeravatar
NoPy
User
Beiträge: 129
Registriert: Samstag 28. Dezember 2013, 12:39

Freitag 17. Januar 2014, 14:25

Im Grunde "erzwingst" Du eine Uhrzeit, auch wenn keine da ist.
Wie wäre es mit "force_time" oder "forced_time" ?
Benutzeravatar
snafu
User
Beiträge: 5925
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Freitag 17. Januar 2014, 16:10

In einigen Projekten habe ich auch schon "maybe" als Präfix gesehen. Bezogen auf deine Funktion wäre es dann also ``maybe_replace()``. Oder du nennst sie einfach nur ``replace()`` und gehst davon aus, dass ein interessierter Anwender die Doku bemüht, um das Verhalten der Funktion zu verstehen.
Benutzeravatar
diesch
User
Beiträge: 80
Registriert: Dienstag 14. April 2009, 13:36
Wohnort: Brandenburg a.d. Havel
Kontaktdaten:

Freitag 17. Januar 2014, 17:49

Code: Alles auswählen

def ensure_has_time(self, default_hour, default_minute):
http://www.florian-diesch.de
N317V
User
Beiträge: 504
Registriert: Freitag 8. April 2005, 13:23
Wohnort: München

Montag 20. Januar 2014, 11:52

Ja, verdammt. Mein Fehler, sorry. Da hatte wohl mein Suppenkoma noch zugeschlagen und mein zweiter Kaffee noch nicht gewirkt. ;-)
Es gibt für alles eine rationale Erklärung.
Außerdem gibt es eine irrationale.

Wie man Fragen richtig stellt
Antworten