Files
054-speed-calc-decorator/docs/wiki/Step-2-Decorator-Skeleton-ms.md
Tirsvad 0227b109d9 Add wiki in English, Danish and Bahasa Malaysia
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
2026-11-06 13:45:44 +08:00

1.2 KiB

Langkah 2: rangka decorator

English · Dansk · Bahasa Malaysia

Decorator ialah fungsi yang menerima sebuah fungsi dan memulangkan fungsi lain. Rangka ini hanya mengumumkan panggilan:

def skeleton(function):
    @functools.wraps(function)
    def wrapper(*args, **kwargs):
        print(f"calling {function.__name__}")
        return function(*args, **kwargs)

    return wrapper

Step 2: the decorator skeleton

Jalankannya dengan python -m speed_calc.lecture_steps 2.

Apa yang kita peroleh

  • Fungsi ialah nilai: anda boleh menghantarnya kepada fungsi lain dan memulangkannya.
  • wrapper di dalam ialah satu closure; ia mengingati function selepas skeleton selesai dipulangkan.
  • *args, **kwargs membolehkan pembungkus menerima argumen bagi sebarang fungsi dan meneruskannya.
  • functools.wraps mengekalkan nama dan docstring asal, jadi fungsi yang didekorasi masih menyebut fast_function.
  • @name di atas sebuah fungsi ialah singkatan bagi function = name(function).