Verwenden Sie Python-Dekoratoren

Jan 19 2023
Dekoratoren sind ein leistungsstarkes Werkzeug, mit dem Sie vorhandenen Funktionen und Klassen Funktionalität hinzufügen können, ohne deren Code zu ändern. Sie können für Aufgaben wie Protokollierung, Caching und Validierung verwendet werden und können dabei helfen, Ihren Code organisiert und wartbar zu halten.

Dekoratoren sind ein leistungsstarkes Werkzeug, mit dem Sie vorhandenen Funktionen und Klassen Funktionalität hinzufügen können, ohne deren Code zu ändern. Sie können für Aufgaben wie Protokollierung, Caching und Validierung verwendet werden und können dabei helfen, Ihren Code organisiert und wartbar zu halten.

Also... was sind Dekorateure?

Ein Dekorator ist ein spezieller Funktionstyp, der eine andere Funktion als Argument verwendet und eine neue Funktion zurückgibt. Die neue Funktion ist normalerweise eine modifizierte Version der ursprünglichen Funktion und wird oft verwendet, um zusätzliche Funktionalität hinzuzufügen.

Wie ist es zu verwenden?

Ein Dekorator wird auf eine Funktion oder Klasse angewendet, indem das „@“-Symbol gefolgt vom Namen der Dekoratorfunktion vor der Funktions- oder Klassendefinition platziert wird.

Hier ist ein Beispiel für einen einfachen Dekorator, der einer Funktion Protokollierungsfunktionen hinzufügt:

def log_decorator(func):
    def wrapper(*args, **kwargs):
        print("Calling function:", func.__name__)
        result = func(*args, **kwargs)
        print("Function returned:", result)
        return result
    return wrapper

@log_decorator
def my_function(x, y):
    return x + y

my_function(1, 2)

Die Ausgabe dieses Codes wird sein:

Calling function: my_function
Function returned: 3

Können Dekorateure Werte erhalten?

Ja! Sie können den Dekorateuren auch ganz einfach Argumente übergeben

def repeat(num):
    def repeat_decorator(func):
        def wrapper(*args, **kwargs):
            for i in range(num):
                result = func(*args, **kwargs)
            return result
        return wrapper
    return repeat_decorator

@repeat(num=3)
def my_function(x):
    return x * x

print(my_function(3))

Erinnern?

Dekoratoren sind spezielle Funktionstypen, die eine andere Funktion als Argument verwenden und eine neue Funktion zurückgeben, normalerweise eine modifizierte Version der ursprünglichen Funktion, die zum Hinzufügen von Funktionalität verwendet wird. Sie werden auf eine Funktion oder Klasse angewendet, indem das „@“-Symbol gefolgt vom Namen der Dekoratorfunktion vor der Funktions- oder Klassendefinition platziert wird. Sie können auch Argumente verwenden, um das Verhalten des Dekorators weiter anzupassen.

Viel Glück, Shilo