Ich habe ein Problem, diesen Code zu verstehen, den ich von Buch "Learning Python" Abschnitt Dekoratoren bekam.Verständnis dieses Python-Dekorator-Codes
Warum gibt dieser Code den Wert des Ergebnisses einmal anstatt zweimal zurück? Wir haben die Menge der Ergebnisvariablen zweimal zurückgegeben, einmal in "max_result" und eine andere in "measure"; hier ist der code:
Hier ist der Ausgang, warum bekommen wir nicht zwei 8 oder zwei 125?
>>> print(cube(2))
cube took: 8.106231689453125e-06
8
>>> print(cube(5))
Result is too big (125). Max allowed is 100.
cube took: 5.91278076171875e-05
125
>>>
Warum denken Sie, dass Sie zwei 8 bekommen sollten? – mgilson
Es sind nur drei Druckanweisungen beteiligt und jede wird höchstens einmal ausgeführt. –
der boock sagt: "Auf dem zweiten Aufruf ist das Ergebnis 125, so wird die Fehlermeldung gedruckt, das Ergebnis zurückgegeben, und dann ist es die Reihenfolge, die die Laufzeit erneut druckt, und schließlich drucken wir das Ergebnis (125). so kommen wir zweimal zurück, was passiert mit einem von ihnen? – ali