LU05.A03 - Aktualisierung von Lagerbeständen mit Transaktionen

Erstelle eine Funktion, die ein Dictionary mit Produktbeständen und eine beliebige Anzahl von Transaktionsobjekten akzeptiert. Jedes Transaktionsobjekt sollte ein Produkt und eine Menge enthalten. Die Funktion sollte den Lagerbestand basierend auf den Transaktionen aktualisieren.

Aufgabenstellung

Definiere eine Funktion namens update_inventory. Das erste Argument sollte ein Dictionary mit Produktbeständen sein, gefolgt von einer variablen Anzahl von Transaktionsobjekten, die mit *args akzeptiert werden. Jedes Transaktionsobjekt sollte zwei Attribute haben: `product` und `quantity`. Positive Mengen erhöhen den Lagerbestand, während negative Mengen ihn verringern.

Beispiel: Für ein Anfangsinventar von `{'Apfel': 10, 'Birne': 5}` und Transaktionen, die 3 Äpfel hinzufügen und 2 Birnen entfernen, sollte die Funktion `update_inventory({'Apfel': 10, 'Birne': 5}, Transaction('Apfel', 3), Transaction('Birne', -2))` aufgerufen werden.

Code-Vorlage:

class Transaction:
    def __init__(self, product, quantity):
        self.product = product
        self.quantity = quantity
 
def update_inventory(inventory, *transactions):
    """
    Updates the inventory based on the provided transactions.
 
    Parameters:
        inventory (dict): The current inventory as a dictionary.
        *transactions (Transaction): Variable number of Transaction objects.
 
    Returns:
        None: Updates the inventory in-place.
    """    
    # TODO: Implementiere die Funktion
    ...
 
if __name__ == '__main__':
    # Teste deine Funktion
    inventory = {'Apfel': 10, 'Birne': 5}
    transactions = [Transaction('Apfel', 3), Transaction('Birne', -2)]
    update_inventory(inventory, *transactions)
    print(inventory)  # Erwarteter Output: {'Apfel': 13, 'Birne': 3}

Vorgehen

  1. Akzeptiere das GitHub Classroom Assignment
  2. Klone dein persönliches Repository in die Entwicklungsumgebung
  3. Implementiere die Funktion update_inventory und die Klasse Transaction gemäß der Aufgabenstellung
  4. Teste die Funktion mit verschiedenen Inventaren und Transaktionen

Abgabe

Die Abgabe der Lösung erfolgt als Push in das persönliche GitHub-Repository.


GitHub Repository https://github.com/templates-python/m323-lu05-a03-args3

Kevin Maurizi