Code: Alles auswählen
s = 'a'
if s == 'a':
print s
else:
print 'b'
Code: Alles auswählen
print 'a' if s == 'a' else 'b'
Code: Alles auswählen
if s == 'a':
print s
elif s == 'b':
print 'b'
else:
print 'c'
mutetella
Code: Alles auswählen
s = 'a'
if s == 'a':
print s
else:
print 'b'
Code: Alles auswählen
print 'a' if s == 'a' else 'b'
Code: Alles auswählen
if s == 'a':
print s
elif s == 'b':
print 'b'
else:
print 'c'
Code: Alles auswählen
print 'a' if s == 'a' else None or 'b' if s == 'b' else None or 'c' if s == 'c' else None
Code: Alles auswählen
def date_is(self, date):
return 'b' if self.is_base(date) else None or \
'd' if self.is_duration(date) else None or \
'r' if self.is_recurrence(date) else None
Code: Alles auswählen
def date_is(self, date):
return 'b' if self.is_base(date) else (
'd' if self.is_duration(date) else (
'r' if self.is_recurrence(date) else None))
Code: Alles auswählen
def date_is(self, date):
for result, test_func in [('b', self.is_base),
('d', self.is_duration),
('r', self.is_recurrence)]:
if test_func(date):
return result
return None
Code: Alles auswählen
class Date(object):
def __init__(self):
self.dates = {"b" : self.is_base,
"d" : self.is_duration,
"r" : self.is_recurrence,
}
def is_base(self):
return 1
def is_duration(self):
return 2
def is_recurrence(self):
return 3
def type_not_exist(self):
raise TypeError("Dieser Datumstyp is unbekannt.")
def date_is(self, date):
return self.dates.get(date, self.type_not_exist)()
if __name__ == "__main__":
d = Date()
print(d.date_is("d"))
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.BlackJack hat geschrieben:Aus OOP-Sicht könnte man sich auch fragen, ob so ein `date` nicht eventuell "seinen Buchstaben" kennen 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...Xynon1 hat geschrieben:... hier mal ein Beispiel, wie ich mir das ungefähr vorstellen könnte
Warum?BlackJack hat geschrieben:Das macht aber was anderes.
'date_is' hätte es auch nicht länger als unbedingt nötigt überlebt. Ich tendiere zu 'position'.BlackJack hat geschrieben:... oder sie sollten anders heissen.
Ok, versteh' ich jetzt auch. Fiel mir beim 'Überfliegen' gar nicht auf... Liegt auch am IMHO unglücklich gewählten 'date' als Argumentname...Xynon1 hat geschrieben:... ich dachte es ging darum mit einem Kürzel zu prüfen, ob es ein bestimmter Typ ist, du machst es ja genau anders herum. Bei dir wird ja der Kürzel zurückgegeben.
Daraus kann man als Conditional Expression sowas schreiben:mutetella hat geschrieben:Code: Alles auswählen
if s == 'a': print s elif s == 'b': print 'b' else: print 'c'
Code: Alles auswählen
print s if s in 'abc' else None
Code: Alles auswählen
if s in 'abc': print s
Code: Alles auswählen
DATE_STYLE_BASE, DATE_STYLE_DURATION, DATE_STYLE_RECURRENCE = range(3)
def get_date_style(self, date):
style_checks = (self.is_base, self.is_duration, self.is_recurrence)
for (style, style_check) in enumerate(style_checks):
if style_check(date):
return style
Code: Alles auswählen
DATE_STYLE_BASE, DATE_STYLE_DURATION, DATE_STYLE_RECURRENCE = range(3)
def get_date_style(self, date):
if self.is_base(date):
return DATE_STYLE_BASE
elif self.is_duration(date):
return DATE_STYLE_DURATION
elif self.is_recurrence(date):
return DATE_STYLE_RECURRENCE
else:
#return None
raise ValueError('Unable to detect date style')