Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

modul:m323:learningunits:lu05:decorator [2024/03/28 14:07] – angelegt - Externe Bearbeitung 127.0.0.1modul:m323:learningunits:lu05:decorator [2025/12/17 13:28] (aktuell) – [Syntax] kmaurizi
Zeile 9: Zeile 9:
 ==== Syntax ==== ==== Syntax ====
  
-Die grundlegende Syntax für einen Decorator in Python ist die folgende: 
  
 +<WRAP group>
 +<WRAP half column>
 +Die grundlegende Syntax für einen Decorator in Python ist die folgende:
 <code python> <code python>
 def decorator_function(original_function): def decorator_function(original_function):
Zeile 22: Zeile 24:
 def display(): def display():
     print("Die Display-Funktion wurde aufgerufen")     print("Die Display-Funktion wurde aufgerufen")
 +
 +display()
 +</code></WRAP>
 +
 +<WRAP half column>
 +Semantisch ist ''@decorator_function'' genau das gleiche wie eine Zuweisung direkt nach der Funktionsdefinition.
 +<code python>
 +def decorator_function(original_function):
 +    def wrapper_function():
 +        # zusätzliche Funktionalitäten hier
 +        original_function()
 +        # weitere zusätzliche Funktionalitäten
 +    return wrapper_function
 +
 +def display():
 +    print("Die Display-Funktion wurde aufgerufen")
 +
 +# das macht @decorator_function:
 +display = decorator_function(display)
  
 display() display()
 </code> </code>
 +</WRAP>
 +</WRAP>
 +
 +
  
 In diesem Beispiel ist ''decorator_function'' der Decorator, der die ''display''-Funktion erweitert. Der "@"-Operator ist [[https://de.wikipedia.org/wiki/Syntaktischer_Zucker|syntaktischer Zucker]] für ''display = decorator_function(display)''. In diesem Beispiel ist ''decorator_function'' der Decorator, der die ''display''-Funktion erweitert. Der "@"-Operator ist [[https://de.wikipedia.org/wiki/Syntaktischer_Zucker|syntaktischer Zucker]] für ''display = decorator_function(display)''.
  • modul/m323/learningunits/lu05/decorator.txt
  • Zuletzt geändert: 2025/12/17 13:28
  • von kmaurizi