es geht heut wiexder um Objektorientiertes Programmieren.
Ich habe in dem Programm schon die leeren returns weggelassen, (versucht) auf Groß- und Kleinschreibung zu achten und glaube, dass man noch mehr "besser" machen kann, was mein Mitstudent nicht behauptet.
Code: Alles auswählen
class Zeit:
"""Klasse fuer Zeiten und Operationen damit"""
def __init__(self,stunden=0,minuten=0,sekunden=0):
"""fuellt die Attribute des Objektes mit der uebergebenen Zeit.
Benutzt 0 wenn kein Wert uebergeben wurde."""
self.stunden = stunden
self.minuten = minuten
self.sekunden = sekunden
#return
def ausgeben(self):
"""gibt die Zeit in einem Format zuerueck,
das gut ausgegeben werden kann"""
return self.stunden,":",self.minuten,":",self.sekunden
def in_sekunden(self):
"""Rechnet die Zeit des Objektes in Sekunden um
und gibt den Sekundenwert zurueck"""
s=self.stunden*3600+self.minuten*60+self.sekunden
return s
def sek_to_time(self,sek):
"""Der Funktion wird eine Sekundenzahl uebergeben.
Sie wird in das klassische Format umgerechnet,
als Attribut der Klasse gespeichert und zurueckgegeben"""
h, restsekunden = divmod(sek,3600)
m, s = divmod(restsekunden, 60)
self.stunden, self.minuten, self.sekunden = h, m, s
return h, m, s
def add(self,zweite_zeit):
"""Addiert die Zeit eines uebergebenen Objektes zur
Zeit des eigenen Objektes und gibt die Summe zurueck"""
ges_sekunden = self.in_sekunden() + zweite_zeit.in_sekunden()
h, restsekunden = divmod(ges_sekunden,3600)
m, s = divmod(restsekunden, 60)
return h, ":", m, ":", s
def set_stunden(self,neue_stunden):
"""Setzt das Stundenattribut des Objektes auf uebergebenen Wert"""
self.stunden = neue_stunden
#return
def set_minuten(self,neue_minuten):
"""Setzt das Minutenattribut des Objektes auf uebergebenen Wert"""
self.minuten = neue_minuten
#return
def set_sekunden(self,neue_sekunden):
"""Setzt das Sekundenattribut des Objektes auf uebergebenen Wert"""
self.sekunden = neue_sekunden
#return
def get_stunden(self):
"""Gibt die Stunden des Objektes zurueck"""
return self.stunden
def get_minuten(self):
"""Gibt die Minuten des Objektes zurueck"""
return self.minuten
def get_sekunden(self):
"""Gibt die Sekunden des Objektes zurueck"""
return self.sekunden
#Tests
#erstelle drei Objekte der Klasse Zeit mit unterschiedlichen Werten
unserezeit = Zeit(13,37,59)
anderezeit = Zeit(1,2,3)
drittezeit = Zeit() #noch ohne inhalt
print unserezeit.ausgeben()
print unserezeit.in_sekunden()
print unserezeit.add(anderezeit)
unserezeit.set_stunden(22)
print unserezeit.ausgeben()
unserezeit.set_minuten(22)
print unserezeit.ausgeben()
unserezeit.set_sekunden(22)
print unserezeit.ausgeben()
print anderezeit.get_stunden()
print anderezeit.get_minuten()
print anderezeit.get_sekunden()
drittezeit.sek_to_time(4845) #soll sein 4845s = 1h 20m 45s
print drittezeit.ausgeben()