0Pricing
Python Academy · Ders

Dekoratörler

İşlevleri değiştirmek veya genişletmek için dekoratörleri nasıl kullanacağınızı öğrenin.

Dekoratörler, CoddyKit'te ücretsiz bir Python Academy 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 Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Python Academy kursu toplamda 5 dersten oluşur.

Dekoratörlere Giriş

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 işlevlerin kodunu değiştirmeden onlara işlevsellik eklemek için kullanılırlar.

Bu derste decorator kavramının ne olduğunu, nasıl kullanılacağını ve kendi decorator uygulamalarınızı nasıl oluşturacağınızı öğreneceksiniz.

Dekoratörler — resim 1

Decorator Nedir?

Decorator Nedir?

Bir decorator, başka bir işlevi girdi olarak alan ve ek işlevsellik içeren 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

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

Bir decorator kullandığınızda Python, özgün işlevi decorator tarafından döndürülen wrapper işleviyle 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()

Dekoratörleri Argümanlarla Kullanma

Dekoratörleri Argümanlarla Kullanma

Dekoratörler, wrapper işlevinde *args ve **kwargs kullanarak argüman 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

Birden Çok Dekoratörü Zincirleme

Tek bir işlev üzerinde birden çok dekoratör kullanabilirsiniz. Bunlar, göründükleri sırayla yukarıdan aşağıya 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 Dekoratörler Oluşturma

Parametreli Dekoratörler Oluşturma

Parametreli dekoratörler 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()

Dekoratörlerin Yaygın Kullanım Alanları

Dekoratörlerin Yaygın Kullanım Alanları

Dekoratörler genellikle şu amaçlarla kullanılır:

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

Python'da Yerleşik Dekoratörler

Python'da Yerleşik Dekoratörler

Python, aşağıdakiler de dahil olmak üzere bazı yerleşik dekoratörler sunar:

  • @staticmethod: Statik bir yöntem tanımlar.
  • @classmethod: Bir sınıf yöntemi tanımlar.
  • @property: Bir özellik yöntemi tanımlar.

Dekoratörlerle İlgili Yaygın Hatalar

Dekoratörlerle İlgili 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 gereksiz yere dekoratör kullanmak.
  • Sarmalayıcı işlevdeki bağımsız değişkenleri işlemeyi unutmak.

Neler Öğrendik?

Neler Öğrendik?

Bu derste şunları öğrendiniz:

  • Dekoratörlerin ne olduğunu ve Python'da nasıl çalıştıklarını.
  • Temel, parametreli ve zincirlenmiş dekoratörlerin nasıl oluşturulacağını ve 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 Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Python Academy kursu toplamda 5 dersten oluşur.

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

İşlevleri değiştirmek veya genişletmek için dekoratörleri nasıl kullanacağınızı öğrenin. Python Academy 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 Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Python Academy, 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 Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Python Academy 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 İfadeleri)
  4. Kapsamlı İfadeler (Liste, Küme ve Sözlük)
  5. Yineleyiciler ve Yinelemeliler
← Python Academy Sayfasına Dön