Sobes.tech
Middle+

Dekoratör fabrikası nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Dekoratör fabrikası, bir dekoratör döndüren bir fonksiyondur. Döndürülen dekoratörün davranışını yapılandırmak için argümanlar alır. Bu, iletilen parametrelere bağlı olarak farklı davranışlara sahip tekrar kullanılabilir dekoratörler oluşturmayı sağlar.

# Dekoratör fabrikası fonksiyonu
def my_decorator_factory(prefix):
    # İç fonksiyon (dekoratör), dekorlanacak fonksiyonu kabul eder
    def my_decorator(func):
        # Bir başka iç fonksiyon (sarmalayıcı), dekoratörün mantığını içerir
        def wrapper(*args, **kwargs):
            print(f"{prefix}: Fonksiyon çağrılmadan önce")
            result = func(*args, **kwargs)
            print(f"{prefix}: Fonksiyon çağrıldıktan sonra")
            return result
        return wrapper
    return my_decorator

# Farklı öneklerle dekoratörler oluşturmak için fabrikanın kullanımı
@my_decorator_factory("DEBUG")
def some_function():
    print("some_function çalışıyor")

@my_decorator_factory("INFO")
def another_function(x, y):
    print(f"another_function çalışıyor, argümanlar {x}, {y}")
    return x + y

some_function()
result = another_function(5, 10)
print(f"Sonuç: {result}")

Ana adımlar:

  1. Dış bir fonksiyon (fabrika) parametrelerle tanımlanır.
  2. Fabrika içinde, dekorlanacak fonksiyonu kabul eden bir dekoratör fonksiyonu tanımlanır.
  3. Dekoratör fonksiyonu içinde, dekoratör mantığını içeren ve fabrika parametreleri ile dekorlanan fonksiyonun argümanlarını kullanabilen bir sarmalayıcı fonksiyon tanımlanır.
  4. Dekoratör fonksiyonu, sarmalayıcı fonksiyonu döndürür.
  5. Fabrika, dekoratör fonksiyonunu döndürür.

Bu, esnek ve yapılandırılabilir dekoratörler oluşturmak için kullanışlıdır.