20 lines
1.3 KiB
Markdown
20 lines
1.3 KiB
Markdown
# Kuliah 6: Penghias (decorator) dan sintaks @
|
|
|
|
[English](Lecture-6-Decorators) · [Dansk](Lecture-6-Decorators-da) · **Bahasa Malaysia**
|
|
|
|

|
|
|
|
## Apa yang dibincangkan dalam kuliah
|
|
|
|
Penghias (decorator) menambah tingkah laku pada fungsi sedia ada tanpa mengubah suai fungsi itu. Kuliah ini mula-mula mengulang kaji fungsi kelas pertama, fungsi bersarang dan pemulangan fungsi, kemudian memperkenalkan sintaks `@`: menulis `@make_bold` di atas sesebuah fungsi sama dengan `say_hello = make_bold(say_hello)`. Flask menggunakan idea yang sama untuk laluan (route)nya: `@app.route("/")`. Dengan `functools.wraps`, fungsi yang dibalut mengekalkan namanya.
|
|
|
|
## Apa yang kita peroleh
|
|
|
|
- Sintaks `@` sebagai jalan pintas untuk menghantar fungsi kepada pembalut.
|
|
- Penghias bertindan: yang paling hampir dengan fungsi dijalankan dahulu, maka `@make_bold @make_emphasis @make_underlined` menghasilkan `<b><em><u>...</u></em></b>`.
|
|
- Kefahaman tentang apa yang dilakukan oleh `@app.route("/")` dalam kuliah-kuliah seterusnya.
|
|
|
|
## Dalam repositori ini
|
|
|
|
Kod: `src/flask_day_54/domain/decorators.py`. Ujian: `tests/unit/test_decorators.py`.
|