Dekoratoren sind leistungsstarke Werkzeuge in Python zur Erweiterung des Verhaltens vorhandener Funktionen. Bei der Anwendung auf eine Funktion verliert die resultierende dekorierte Funktion jedoch häufig ihre ursprüngliche Dokumentation und Signatur. Dies kann problematisch sein, insbesondere wenn generische Dekoratoren verwendet werden, die häufige Aufgaben wie Protokollierung oder Argumentkonvertierung ausführen.
Häufige Problemumgehungen
Einige häufige Problemumgehungen sind:
Verwenden des Dekoratormoduls
Eine robustere Lösung ist die Verwendung des Decorator-Moduls, das eine Decorator-Funktion namens @decorator.decorator bereitstellt. Indem Sie diesen Dekorator auf Ihre eigene Dekoratorfunktion anwenden, können Sie die Signatur der ursprünglichen Funktion beibehalten.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
Python 3.4
In Python 3.4 und höher ist die Die Funktion functools.wraps() kann zum Beibehalten von Signaturen verwendet werden.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
Das obige ist der detaillierte Inhalt vonWie bewahrt man die Signatur dekorierter Funktionen in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!