0Pricing
Learn AI with Python · Pelajaran

Dekorator

Pelajari cara menggunakan dekorator untuk mengubah atau memperluas fungsi

Dekorator adalah pelajaran Learn AI with Python gratis di CoddyKit. Ini adalah pelajaran 1 dari 5. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Learn AI with Python, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Learn AI with Python mencakup 5 pelajaran total.

Pengantar Decorator

Pengantar Decorator

Decorator adalah fitur canggih di Python yang memungkinkan Anda mengubah perilaku fungsi atau metode. Decorator sering digunakan untuk menambahkan fungsionalitas ke fungsi tanpa mengubah kodenya.

Dalam pelajaran ini, Anda akan mempelajari apa itu decorator, cara menggunakannya, dan cara membuat decorator Anda sendiri.

Dekorator — ilustrasi 1

Apa Itu Decorator?

Apa Itu Decorator?

Decorator adalah fungsi yang menerima fungsi lain sebagai masukan dan mengembalikan fungsi baru dengan fungsionalitas tambahan. Decorator sering digunakan dengan sintaks @decorator_name.

# Basic example of a decorator
def decorator(func):
    def wrapper():
        print("Before the function call")
        func()
        print("After the function call")
    return wrapper

@decorator
def say_hello():
    print("Hello!")

say_hello()

Cara Kerja Decorator

Cara Kerja Decorator

Saat Anda menggunakan decorator, Python mengganti fungsi asli dengan fungsi wrapper yang dikembalikan oleh decorator.

# How decorators work
def decorator(func):
    def wrapper():
        print("Wrapper called")
        func()
    return wrapper

@decorator
def greet():
    print("Greetings!")

print(greet.__name__)  # Outputs: wrapper
greet()

Menggunakan Decorator dengan Argumen

Menggunakan Decorator dengan Argumen

Decorator dapat digunakan dengan fungsi yang menerima argumen menggunakan *args dan **kwargs dalam fungsi wrapper:

# Decorator for functions with arguments
def decorator(func):
    def wrapper(*args, **kwargs):
        print(f"Arguments: {args}, {kwargs}")
        return func(*args, **kwargs)
    return wrapper

@decorator
def add(a, b):
    return a + b

print(add(3, 5))

Merangkai Beberapa Decorator

Merangkai Beberapa Decorator

Anda dapat menggunakan beberapa decorator pada satu fungsi. Decorator tersebut diterapkan sesuai urutan kemunculannya, dari atas ke bawah:

# Chaining multiple decorators
def decorator1(func):
    def wrapper():
        print("Decorator 1")
        func()
    return wrapper

def decorator2(func):
    def wrapper():
        print("Decorator 2")
        func()
    return wrapper

@decorator1
@decorator2
def greet():
    print("Hello!")

greet()

Membuat Dekorator Berparameter

Membuat Dekorator Berparameter

Dekorator berparameter menerima argumen dan memungkinkan fungsionalitas yang lebih fleksibel:

# Parameterized decorator
def repeat(times):
    def decorator(func):
        def wrapper(*args, **kwargs):
            for _ in range(times):
                func(*args, **kwargs)
        return wrapper
    return decorator

@repeat(3)
def say_hello():
    print("Hello!")

say_hello()

Kasus Penggunaan Umum Dekorator

Kasus Penggunaan Umum Dekorator

Dekorator biasanya digunakan untuk:

  • Mencatat pemanggilan fungsi dan argumennya.
  • Mengukur waktu eksekusi fungsi.
  • Mengontrol akses (misalnya, memeriksa izin pengguna).
  • Menyimpan hasil sementara untuk meningkatkan kinerja.

Dekorator Bawaan dalam Python

Dekorator Bawaan dalam Python

Python menyediakan beberapa dekorator bawaan, termasuk:

  • @staticmethod: Mendefinisikan metode statis.
  • @classmethod: Mendefinisikan metode kelas.
  • @property: Mendefinisikan metode properti.

Kesalahan Umum pada Decorator

Kesalahan Umum pada Decorator

Berikut beberapa kesalahan yang perlu dihindari:

  • Tidak mempertahankan nama dan string dokumentasi fungsi asli (gunakan functools.wraps).
  • Menggunakan decorator secara tidak perlu untuk tugas sederhana.
  • Lupa menangani argumen dalam fungsi wrapper.

Apa yang Kita Pelajari?

Apa yang Kita Pelajari?

Dalam pelajaran ini, Anda telah mempelajari:

  • Apa itu dekorator dan cara kerjanya dalam Python.
  • Cara membuat dan menggunakan dekorator dasar, berparameter, dan berantai.
  • Kasus penggunaan umum dan dekorator bawaan dalam Python.

Bagus sekali! Mari lanjut ke topik berikutnya.

Dekorator — ilustrasi 11

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Dekorator” gratis?

Ya — teks lengkap “Dekorator” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Learn AI with Python, upgrade ke CoddyKit PRO. Kursus Learn AI with Python mencakup 5 pelajaran total.

Apa yang akan aku pelajari di “Dekorator”?

Pelajari cara menggunakan dekorator untuk mengubah atau memperluas fungsi Kamu berlatih Learn AI with Python dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Learn AI with Python?

Tidak diperlukan pengalaman sebelumnya. Learn AI with Python di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 5.

Berapa lama pelajaran “Dekorator” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Learn AI with Python ini?

Ya. Setiap pelajaran Learn AI with Python menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Dekorator
  2. Generator
  3. Pengelola Konteks (Pernyataan with)
  4. Pemahaman (List, Set, dan Dictionary)
  5. Iterator dan Iterable
← Kembali ke Learn AI with Python