Kursinhalt
Fortgeschrittene Python-Techniken
Fortgeschrittene Python-Techniken
Praktische Beispiele für die Verwendung von Decorators
Dekoratoren in Python sind ein leistungsstarkes Werkzeug zur Modifizierung des Verhaltens von Funktionen oder Methoden. Die häufigsten Anwendungen sind Schlafen, Zeitvalidierung und Protokollierung.
1. Schlaf-Dekorator
Dieser Dekorator lässt die Funktion eine bestimmte Zeit warten, bevor sie ausgeführt wird.
import time def sleep_decorator(seconds): def decorator(func): def wrapper(*args, **kwargs): print(f"Sleeping for {seconds} seconds before executing '{func.__name__}'") time.sleep(seconds) return func(*args, **kwargs) return wrapper return decorator @sleep_decorator(2) def my_function(): print("Function executed!") # Usage my_function()
2. Validierungs-Dekorator
Dieser Dekorator überprüft, ob die Eingaben einer Funktion bestimmte Kriterien erfüllen.
def validate_decorator(func): def wrapper(number): if not isinstance(number, int) or number < 0: raise ValueError("Input must be a non-negative integer") return func(number) return wrapper @validate_decorator def factorial(n): if n == 0: return 1 else: return n * factorial(n - 1) # Usage print(factorial(5)) # factorial(-1) # This will raise an error
3. Zeitmessungs-Dekorator
Dieser Dekorator misst die Ausführungszeit einer Funktion. Wir haben ihn bereits im vorherigen Kapitel verwendet.
import time def timing_decorator(func): def wrapper(*args, **kwargs): start_time = time.time() result = func(*args, **kwargs) end_time = time.time() print(f"'{func.__name__}' executed in {end_time - start_time} seconds") return result return wrapper @timing_decorator def some_function(): time.sleep(1) # Simulating a task print("Function completed") # Usage some_function()
Der Dekorator für Login-Verifizierung verwendet zusätzliche Bibliotheken und wird in der Webentwicklung eingesetzt, daher ist es sinnvoller, diesen Dekorator im Kontext der Website-Erstellung zu betrachten.
Wie gesagt, Dekoratoren sind ein komplexes Thema in Python und erfordern manchmal mehr Übung, um dieses Thema vollständig zu verstehen. Sie sind auf dem richtigen Weg, um eine Programmierer-Mentalität aufzubauen.
Laden Sie die Notizen zum Kurs herunter. 😉
1. Was wird die Ausgabe des folgenden Codes sein?
2. Was wird die Ausgabe des folgenden Codes sein?
Danke für Ihr Feedback!