Python Academy · Pelajaran

Penghias

Pelajari cara menggunakan penghias untuk mengubah suai atau melanjutkan fungsi.

Pelajaran 1 daripada 511 langkah

Penghias ialah pelajaran Python Academy percuma di CoddyKit. Ini ialah pelajaran 1 daripada 5. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Python Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Python Academy merangkumi sejumlah 5 pelajaran.

Pengenalan kepada decorator

Decorator ialah ciri berkuasa dalam Python yang membolehkan anda mengubah tingkah laku fungsi atau kaedah. Decorator sering digunakan untuk menambahkan fungsi kepada fungsi tanpa mengubah kodnya.

Dalam pelajaran ini, anda akan mempelajari apa itu decorator, cara menggunakannya dan cara mencipta decorator sendiri.

Penghias — ilustrasi 1

Apakah decorator?

Satu decorator ialah fungsi yang menerima fungsi lain sebagai masukan dan mengembalikan fungsi baharu dengan fungsi tambahan. Ia 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 decorator Berfungsi

Apabila anda menggunakan decorator, Python menggantikan fungsi asal 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

Decorator boleh berfungsi dengan fungsi yang menerima argumen dengan 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))

Merangkaikan Beberapa decorator

Anda boleh menggunakan beberapa decorator pada satu fungsi. decorator tersebut digunakan mengikut 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()

Mencipta decorator Berparameter

decorator berparameter menerima argumen dan membolehkan fungsi 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()

Kes Penggunaan Lazim bagi decorator

decorator biasanya digunakan untuk:

  • Mengelogan panggilan fungsi dan argumennya.
  • Mengukur masa pelaksanaan fungsi.
  • Kawalan akses, contohnya memeriksa kebenaran pengguna.
  • Menyimpan hasil secara sementara untuk meningkatkan prestasi.

Decorator Terbina Dalam Python

Python menyediakan beberapa decorator terbina dalam, termasuk:

  • @staticmethod: Mentakrifkan kaedah statik.
  • @classmethod: Mentakrifkan kaedah kelas.
  • @property: Mentakrifkan kaedah sifat.

Kesilapan Lazim dengan decorator

Berikut ialah beberapa kesilapan yang perlu dielakkan:

  • Tidak mengekalkan nama dan rentetan dokumentasi fungsi asal (gunakan functools.wraps).
  • Menggunakan decorator tanpa keperluan untuk tugas yang mudah.
  • Terlupa mengendalikan argumen dalam fungsi pembalut.

Apakah yang Telah Kita Pelajari?

Dalam pelajaran ini, Anda telah mempelajari:

  • Apakah decorator dan cara decorator berfungsi dalam Python.
  • Cara mencipta dan menggunakan decorator asas, berparameter dan yang dirangkaikan.
  • Kes penggunaan lazim dan decorator terbina dalam Python.

Syabas! Mari kita beralih ke topik seterusnya.

Penghias — ilustrasi 11
Percuma untuk bermula

Pelajari Python dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
76
Pelajaran
320

Soalan Lazim

Adakah pelajaran “Penghias” percuma?

Ya — teks penuh “Penghias” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Python Academy, tingkat taraf kepada CoddyKit PRO. Kursus Python Academy merangkumi sejumlah 5 pelajaran.

Apakah yang akan saya pelajari dalam “Penghias”?

Pelajari cara menggunakan penghias untuk mengubah suai atau melanjutkan fungsi. Anda berlatih Python Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Python Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Python Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 5.

Berapa lamakah pelajaran “Penghias” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Python Academy ini?

Ya. Setiap pelajaran Python Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Penghias
  2. Penjana
  3. Pengurus Konteks (Pernyataan with)
  4. Pemahaman (Senarai, Set dan Kamus)
  5. Pengulang dan Boleh Diulang
← Kembali ke Python Academy