Menu
Coddy logo textTech

Decorators Usage

Coddy'nin Python Dekoratörleri kursunda ders 5 / 12.

Python'da bir dekoratör (decorator), başka bir fonksiyonu girdi olarak alan ve girdi fonksiyonunun kodunu açıkça değiştirmeden davranışını genişleten bir fonksiyondur. Dekoratörler, fonksiyonların davranışlarını esnek ve yeniden kullanılabilir bir şekilde değiştirmek veya geliştirmek için güçlü bir yoldur.

İşte basit bir dekoratör fonksiyonu örneği:

def my_decorator(func):
    def wrapper():
        print("Before the function is called.")
        func()
        print("After the function is called.")
    return wrapper

Bu örnekte, my_decorator fonksiyonu girdi olarak başka bir func fonksiyonunu alır ve wrapper adında yeni bir fonksiyon döndürür.

wrapper fonksiyonu, func fonksiyonu çağrılmadan önce ve çağrıldıktan sonra bazı davranışlar ekler.

challenge icon

Görev

Kolay

Girdi olarak bir func fonksiyonu alan ve her çağrıldığında func ismini ve func dönüş değerini yazdıran yeni bir fonksiyon döndüren debug adında bir dekoratör fonksiyonu yazın.

func ismini almak için func.__name__ kullanın.

İşte debug dekoratörünün kullanımına bir örnek:
 

def hello():
    return "Hello"

debug_hello = debug(hello)
debug_hello()

Bu örnekte, hello fonksiyonunu sarmalamak ve debug_hello adında yeni bir fonksiyon oluşturmak için debug dekoratörünü kullanıyoruz. debug_hello() fonksiyonunu çağırdığımızda, dekoratör şunu yazdıracaktır:

Calling hello
hello returned: Hello

debug fonksiyonuna iletilen tüm fonksiyonların argümansız fonksiyonlar olduğunu varsayabilirsiniz.

Kendin dene

Python Dekoratörleri bölümündeki tüm dersler

Kendi başına pratik yap: Online Python derleyicisi