Menu
Coddy logo textTech

Python Syntax

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

Önceki derste, fonksiyon dekoratörlerinin nasıl oluşturulacağını gördük, ancak Python bu işlevselliği elde etmek için @ sembolünü kullanarak çok daha zarif bir yol sunar.

Örneğin,

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

@my_decorator
def my_function():
	print("Inside my_function.")

my_function() fonksiyonunu çalıştırdığımızda, şuna benzer bir çıktı göreceğiz:

Before function is called.
Inside my_function.
After function is called.

Bu, dekoratör fonksiyonu my_decorator'ın, my_function çağrılmadan önce ve sonra bazı ek kodlar ekleyerek davranışını değiştirebildiğini gösterir.

challenge icon

Görev

Kolay

Size bir add fonksiyonu kodu verilmiştir.

Göreviniz, son derste olduğu gibi ancak bazı eklemelerle birlikte debug adında bir fonksiyon dekoratörü yazmaktır:

  • debug fonksiyon dekoratörünü @ sembolünü kullanarak add fonksiyonuna ekleyin.
  • Debug fonksiyonu, fonksiyon argümanlarını desteklemelidir.

Bir dekoratörde argümanlı fonksiyonları desteklemek için,

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

Örnek:

Bir add(2, 3) fonksiyon çağrısı için şunlar yazdırılmalıdır,

Calling add with arguments (2, 3)
add returned: 5

Kendin dene

# Buraya kod yazın


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

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

Kendi başına pratik yap: Online Python derleyicisi