==== Lösung 4 - Klassendiagramm umsetzen ==== class BankAccount: """ Die Klasse definiert ein Bankkonto mit der Möglichkeit eines negativen Saldos (Überzug). """ def __init__(self, max_overdrfaft, customer): """ Initialisiert das Objekt als leeres Konto, dem ein Kunde zugewiesen und der Betrag für einen möglichen maximalen Überzug festgelegt wird. :param max_overdrfaft: maximaler Überzug für dieses Konto :param customer: Referenz zum Kunden """ self._balance = 0.0; # zwingend 0.0 damit ein float erzeugt wird self._overdraft = max_overdrfaft self._customer = customer def booking(self, amount): """ Bucht einen Betrag ins Konto ein. :param amount: Betrag der eingebucht wird """ self._balance += amount def get_money(self, amount): """ Legt einen Betrag fest, der vom Konto abgezogen werden soll. Dabei wird überprüft, ob der Betrag auf dem Konto verfügbar ist. Sollte der angeforderte Betrag zu gross sein, wird kein Geld geliefert. :param amount: Betrag der bezogen werden soll :return: Betrag der bezogen werden kann """ if (self._balance + self._overdraft) > amount: self._balance -= amount return amount else: return 0.0 @property def balance(self): """ Liefert den aktuellen Saldo des Kontos. :return: Saldo des Kontos """ return self._balance @property def overdraft(self): """ Liefert den möglich Überzug auf diesem Konto. :return: Überzugslimite des Kontos """ return self._overdraft @property def customer(self): """ Liefert die Referenz des Kunden. :return: Referenz zum Kunden """ return self._customer class Bottle: """ Die Klasse beschreibt eine Trinkflasche mit den wichtigsten Eigenschaften und Fähigkeiten. """ def _init__(self, color, capacity): """ Erstellt eine leere Flasche mit der durch color angegebenen Farbe und der vorgegebene Grösse (capacity). :param color: :param capacity: """ self._quantity_avaiable = 0.0 # 0.0 da float self._color = color self._capacity = capacity @property def color(self): """ Liefert die Farbe der Flasche :return: Farbe der Flasche """ return self._color @property def quantity_avaiable(self): """ Liefert die noch verfügbare Mengde an Flüssigkeit. :return: verfügbare Menge """ return self._quantity_avaiable @property def capacity(self): """ Liefert die Grösse (Kapazität) der Flasche :return: Grösse der Flasche """ return self._capacity def open_bottle(self): """ ohne Implementation """ def close_the_bottle(self): """ ohne Implementation """ def fill_bottle(self): """ Füllt die Flasche bis sie voll ist. """ self._quantity_avaiable = self._capacity def get_liquid(self, amount): """ Liefert die durch amount angegeben Menge, sofern diese verfügbar ist. Ansonsten wird der Rest des Inhalts geliefert. :param amount: gewünschte Menge :return: verfügbare Menge """ if amount > self._quantity_avaiable: amount = self._quantity_avaiable self._quantity_avaiable = 0.0 else: self._quantity_avaiable -= amount return amount ---- [[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] (c) René Probst