class VerwalteterGeldbetrag: def __int__(self, kontostand): self.Betrag = kontostand def einzahlenMoeglich(self, betrag): return True def auszahlenMoeglich(self, betrag): return True def einzahlen(self, betrag): if betrag < 0 or not self.einzahlenMoeglich(betrag): return False else: self.Betrag += betrag return True def auszahlen(self, betrag): if betrag < 0 or not self.auszahlenMoeglich(betrag): return False else: self.Betrag -= betrag return True def zeige(self): print("Betrag: {}".format(self.Betrag)) class AllgemeinesKonto(VerwalteterGeldbetrag): def __init__(self, kundendaten, kontostand): super().__init__(kontostand) self.Kundendaten = kundendaten def geldtransfer(self, ziel, betrag): if self.auszahlenMoeglich(betrag) and ziel.einzahlenMoeglich(betrag): self.auszahlen(betrag) ziel.einzahlen(betrag) return True else: return False def zeige(self): self.Kundendaten.zeige() VerwalteterGeldbetrag.zeige(self) class AllgemeinesKontoMitTagesumsatz(AllgemeinesKonto): def __init__(self, kundendaten, kontostand, max_tagesumsatz=1500): super().__init__(kundendaten, kontostand) self.MaxTagesumsatz = max_tagesumsatz self.UmsatzHeute = 0.0 def transferMoeglich(self, betrag): return (self.UmsatzHeute + betrag <= self.MaxTagesumsatz) def auszahlenMoeglich(self, betrag): return self.transferMoeglich(betrag) def einzahlenMoeglich(self, betrag): return self.transferMoeglich(betrag) def einzahlen(self, betrag): if AllgemeinesKonto.einzahlen(self, betrag): self.UmsatzHeute += betrag return True else: return False def auszahlen(self, betrag): if AllgemeinesKonto.auszahlen(self, betrag): self.UmsatzHeute += betrag return True else: return False def zeige(self): AllgemeinesKonto.zeige(self) print("Heute schon {} von {} Euro umgesetzt".format(self.UmsatzHeute, self.MaxTagesumsatz)) class GirokontoKundendaten: def __init__(self, inhaber, kontonummer): self.Inhaber = inhaber self.Kontonummer = kontonummer def zeige(self): print("Inhaber:", self.Inhaber) print("Kontonummer:", self.Kontonummer) class GirokontoMitTagesumsatz(AllgemeinesKontoMitTagesumsatz): def __init__(self, inhaber, kontonummer, kontostand, max_tagesumsatz=1500): kundendaten = GirokontoKundendaten(inhaber, kontonummer) super().__init__(kundendaten, kontostand, max_tagesumsatz) k1 = AllgemeinesKontoMitTagesumsatz("Heinz", 12345, 1001.99) k2 = GirokontoMitTagesumsatz("Lisa", 67891, 2001.99) # k1.einzahlen(200) # k1.zeige() # k2.geldtransfer(k1,200) # k1.zeige() # k2.zeige()