0Pricing
Python For Kids · Ders

Dekoratörler

İşlevleri değiştirmek veya genişletmek için dekoratörleri kullanmayı öğrenme

Dekoratörler, CoddyKit'te ücretsiz bir Python For Kids dersidir. Bu, 5 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Python For Kids öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Python For Kids kursu toplamda 5 dersten oluşur.

Dekoratörlere Giriş

Dekoratörler, Python'da işlevlerin veya yöntemlerin davranışını değiştirmenize olanak tanıyan güçlü bir özelliktir. Genellikle kodlarını değiştirmeden işlevlere işlevsellik eklemek için kullanılırlar.

Bu derste dekoratörlerin ne olduğunu, nasıl kullanılacağını ve kendi dekoratörlerinizi nasıl oluşturacağınızı öğreneceksiniz.

Dekoratörler — resim 1

Dekoratör Nedir?

Dekoratör, başka bir işlevi girdi olarak alan ve ek işlevselliğe sahip yeni bir işlev döndüren bir işlevdir. Genellikle @decorator_name söz dizimiyle kullanılır.

# 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()

Dekoratörler Nasıl Çalışır?

Bir dekoratör kullandığınızda Python, özgün işlevi dekoratörün döndürdüğü sarmalayıcı işlevle değiştirir.

# 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()

Bağımsız Değişkenlerle Dekoratör Kullanma

Dekoratörler, sarmalayıcı işlevde *args ve **kwargs kullanarak bağımsız değişken alan işlevlerle çalışabilir:

# 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))

Birden Çok Dekoratörü Zincirleme

Tek bir işlev üzerinde birden çok dekoratör kullanabilirsiniz. Dekoratörler, yukarıdan aşağıya, göründükleri sırayla uygulanır:

# 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()

Parametreli decorator Oluşturma

Parametreli decorator’lar bağımsız değişkenler alır ve daha esnek işlevler sunar:

# 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()

decorator’ların Yaygın Kullanım Alanları

decorator’lar genellikle şu amaçlarla kullanılır:

  • İşlev çağrılarını ve bunların bağımsız değişkenlerini günlüğe kaydetmek.
  • İşlevlerin yürütülme süresini ölçmek.
  • Erişim denetimi yapmak (örneğin kullanıcı izinlerini kontrol etmek).
  • Performansı artırmak için sonuçları önbelleğe almak.

Python’da Yerleşik decorator’lar

Python, aşağıdakiler de dâhil olmak üzere bazı yerleşik decorator’lar sağlar:

  • @staticmethod: Statik bir method tanımlar.
  • @classmethod: Bir sınıf methodu tanımlar.
  • @property: Bir özellik methodu tanımlar.

Dekoratörlerde Yaygın Hatalar

Kaçınmanız gereken bazı hatalar şunlardır:

  • Özgün işlevin adını ve belge dizesini korumamak (functools.wraps kullanın).
  • Basit görevler için dekoratörleri gereksiz yere kullanmak.
  • Sarmalayıcı işlevdeki bağımsız değişkenleri ele almayı unutmak.

Ne Öğrendik?

Bu derste şunları öğrendiniz:

  • Dekoratörlerin ne olduğunu ve Python'da nasıl çalıştıklarını.
  • Temel, parametreli ve zincirleme dekoratörlerin nasıl oluşturulup kullanılacağını.
  • Python'daki yaygın kullanım alanlarını ve yerleşik dekoratörleri.

Harika iş çıkardınız! Şimdi sonraki konuya geçelim.

Dekoratörler — resim 11

Sıkça Sorulan Sorular

“Dekoratörler” dersi ücretsiz mi?

Evet — “Dekoratörler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Python For Kids kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Python For Kids kursu toplamda 5 dersten oluşur.

“Dekoratörler” dersinde ne öğreneceğim?

İşlevleri değiştirmek veya genişletmek için dekoratörleri kullanmayı öğrenme Python For Kids ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Python For Kids öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Python For Kids, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 5 dersinin 1. dersidir.

“Dekoratörler” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Python For Kids dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Python For Kids dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Dekoratörler
  2. Üreteçler
  3. Bağlam Yöneticileri (with Deyimleri)
  4. Kapsamlı İfadeler (Liste, Küme ve Sözlük)
  5. Yineleyiciler ve Yinelenebilirler
← Python For Kids Sayfasına Dön