Middle+
Dekorator fabrikası nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Dekorator fabriki, geri dönüş edən bir funksiyadır. Bu, geri döndürülen dekoratorun davranışını konfiqurasiya etmək üçün arqumentləri qəbul edir. Bu, verilən parametrlərə əsasən müxtəlif davranışlara malik təkrar istifadə edilə bilən dekoratorlar yaratmağa imkan verir.
# Dekorator fabriki funksiyası
def my_decorator_factory(prefix):
# Daxili funksiya (dekorator), dekorasiya ediləcək funksiyanı qəbul edir
def my_decorator(func):
# Başqa bir daxili funksiya (qapqac), dekoratorun məntiqini ehtiva edir
def wrapper(*args, **kwargs):
print(f"{prefix}: Funksiya çağırılmadan əvvəl")
result = func(*args, **kwargs)
print(f"{prefix}: Funksiya çağırıldıqdan sonra")
return result
return wrapper
return my_decorator
# Fərqli prefikslərlə dekoratorlar yaratmaq üçün fabrikanın istifadəsi
@my_decorator_factory("DEBUG")
def some_function():
print("some_function icra olunur")
@my_decorator_factory("INFO")
def another_function(x, y):
print(f"another_function icra olunur, arqumentlər {x}, {y}")
return x + y
some_function()
result = another_function(5, 10)
print(f"Nəticə: {result}")
Əsas addımlar:
- Xarici funksiya (fabrika) parametrlərlə təyin edilir.
- Fabrika daxilində, dekorasiya ediləcək funksiyanı qəbul edən dekorator funksiyası təyin edilir.
- Dekorator funksiyası daxilində, dekoratorun məntiqini ehtiva edən və fabrikanın parametrlərindən və dekorasiya edilən funksiyanın arqumentlərindən istifadə edə bilən qapqac funksiyası təyin edilir.
- Dekorator funksiyası qapqac funksiyasını geri qaytarır.
- Fabrika, dekorator funksiyasını geri qaytarır.
Bu, elastik və konfiqurasiya edilə bilən dekoratorlar yaratmaq üçün faydalıdır.