Six pages and a sidebar, each lecture step with its screenshot and what it taught; review record RC-008. Refs #14 Refs #15 Refs #16 Refs #17 Refs #18
25 lines
1.0 KiB
Markdown
25 lines
1.0 KiB
Markdown
# Trin 3: tidtagnings-wrapperen
|
|
|
|
[English](Step-3-Timing-Wrapper) · **Dansk** · [Bahasa Malaysia](Step-3-Timing-Wrapper-ms)
|
|
|
|
Wrapperen aflæser uret før og efter kaldet og udskriver forskellen:
|
|
|
|
```python
|
|
start = clock()
|
|
result = function(*args, **kwargs)
|
|
seconds = clock() - start
|
|
output(RESULT_TEMPLATE.format(name=function.__name__, seconds=seconds))
|
|
return result
|
|
```
|
|
|
|

|
|
|
|
Kør den med `python -m speed_calc.lecture_steps 3`.
|
|
|
|
## Hvad vi lærte
|
|
|
|
- En dekorator kan køre kode før og efter funktionen uden at ændre funktionen.
|
|
- Wrapperen returnerer funktionens resultat, så den dekorerede funktion stadig virker som før.
|
|
- `make_speed_calc_decorator(clock, output)` tager uret og outputtet som parametre. Testene giver den et falsk ur, så de kontrollerer præcise værdier og aldrig venter på rigtig tid.
|
|
- Tekstformatet ligger i `constants.py`, det ene sted for konstanter.
|