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.
1234567891011121314151617import 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.
1234567891011121314151617def 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.
12345678910111213141516171819import 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!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 3.7
Praktische Beispiele für die Verwendung von Decorators
Swipe um das Menü anzuzeigen
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.
1234567891011121314151617import 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.
1234567891011121314151617def 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.
12345678910111213141516171819import 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!