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.1 KiB
Markdown
25 lines
1.1 KiB
Markdown
# Langkah 3: pembungkus pemasaan
|
|
|
|
[English](Step-3-Timing-Wrapper) · [Dansk](Step-3-Timing-Wrapper-da) · **Bahasa Malaysia**
|
|
|
|
Pembungkus membaca jam sebelum dan selepas panggilan, lalu mencetak perbezaannya:
|
|
|
|
```python
|
|
start = clock()
|
|
result = function(*args, **kwargs)
|
|
seconds = clock() - start
|
|
output(RESULT_TEMPLATE.format(name=function.__name__, seconds=seconds))
|
|
return result
|
|
```
|
|
|
|

|
|
|
|
Jalankannya dengan `python -m speed_calc.lecture_steps 3`.
|
|
|
|
## Apa yang kita peroleh
|
|
|
|
- Sebuah decorator boleh menjalankan kod sebelum dan selepas fungsi tanpa mengubah fungsi itu.
|
|
- Pembungkus memulangkan hasil fungsi, jadi fungsi yang didekorasi masih berfungsi seperti dahulu.
|
|
- `make_speed_calc_decorator(clock, output)` menerima jam dan output sebagai parameter. Ujian memberinya jam palsu, jadi ia menyemak nilai yang tepat dan tidak pernah menunggu masa sebenar.
|
|
- Format teks terletak dalam `constants.py`, satu-satunya tempat untuk pemalar.
|