LU05.A09 - Refactoring: Vermeiden globaler Variablen durch Closures

Refaktorieren Sie eine bestehende Python-Funktion, die eine globale Variable verwendet, um einen Zähler zu verwalten, und ersetzen Sie diese durch ein Closure.

Aufgabenstellung

Ihr Ziel ist es, eine bestehende Funktion zu refaktorieren, die derzeit eine globale Variable verwendet, um einen Zähler zu verwalten. Sie sollten die globale Variable durch ein Closure ersetzen, das den gleichen Zweck erfüllt.

Code-Vorlage

main.py
# Version mit globaler Variable
counter = 0
 
def increment_counter():
    global counter
    counter += 1
    print(f"Counter: {counter}")
    return counter
 
# Ihr Ziel ist es, diesen Code zu refaktorieren,
# um die globale Variable durch ein Closure (create_counter) zu ersetzen.
def create_counter():
    # TODO: Implementieren Sie hier die Funktion create_counter
    ...
 
 
if __name__ == '__main__':
    # Auch mit dem Closure soll der Aufruf von increment_counter()
    # wie gewohnt funktionieren.
    # TODO: Erstellen Sie hier das Closure.
    increment_counter()
    increment_counter()
    increment_counter()

Vorgehen

  1. Akzeptiere das GitHub Classroom Assignment
  2. Klone dein persönliches Repository in die Entwicklungsumgebung
  3. Entfernen Sie die globale Variable und ersetzen Sie diese durch eine äußere Funktion, die eine innere Funktion zurückgibt.
  4. Die innere Funktion sollte in der Lage sein, den Zähler zu inkrementieren und den aktuellen Wert auszugeben.
  5. Testen Sie die refaktorierte Funktion, um sicherzustellen, dass sie wie erwartet funktioniert.

Abgabe

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


⇒ GitHub Repo für externe Besucher

GitHub Repository https://github.com/templates-python/m323-lu05-a09-closures2

Lernende am BZZ müssen den Link zum GitHub Classroom Assignment verwenden

© Kevin Maurizi