Programme

Alle Programme, die in diesem Buch besprochen werden, und die Programme zu den Musterlösungen der Übungsaufgaben können Sie auch als ein zip-Archiv herunterladen.

Download    Programm 13.1: OOsim/dekorator1.py

"""Funktionsweise eines Dekorators."""


# Definiere einen Dekorator.
def logge_aufruf(f):
    """Gib Aufrufe der Funktion f auf dem Bildschirm aus."""
    def innere_funktion(x):
        print(f'Funktionsaufruf von "{f.__name__}({x})".')
        y = f(x)
        print(f'Ergebnis von "{f.__name__}({x})": {y}')
        return y
    return innere_funktion


# Definiere eine gewöhnliche Funktion.
def wurzel(x):
    return x ** (1/2)


# Dekoriere die Funktion mit dem Dekorator.
wurzel_kommentiert = logge_aufruf(wurzel)

# Rufe die dekorierte Funktion auf.
wurzel_von_zwei = wurzel_kommentiert(2)