Middle+
Dekorator fabrikasi nima?
sobes.tech AI
AIdan javob
Dekorator fabrikasi — bu, dekorator qaytaradigan funktsiya. U, qaytariladigan dekoratorning xatti-harakatini sozlash uchun argumentlarni qabul qiladi. Bu, berilgan parametrlar asosida turli xatti-harakatlarga ega qayta ishlatiladigan dekoratorlarni yaratishga imkon beradi.
# Dekorator fabrikasi funktsiyasi
def my_decorator_factory(prefix):
# Ichki funktsiya (dekorator), u dekoratsiya qilinadigan funktsiyani qabul qiladi
def my_decorator(func):
# Yana bir ichki funktsiya (qopqoq), u dekoratorning logikasini o'z ichiga oladi
def wrapper(*args, **kwargs):
print(f"{prefix}: Funktsiya chaqirilishidan oldin")
result = func(*args, **kwargs)
print(f"{prefix}: Funktsiya chaqirilgandan keyin")
return result
return wrapper
return my_decorator
# Fabrikadan turli prefikslar bilan dekoratorlar yaratish uchun foydalanish
@my_decorator_factory("DEBUG")
def some_function():
print("some_function bajarilmoqda")
@my_decorator_factory("INFO")
def another_function(x, y):
print(f"another_function bajarilmoqda, argumentlar {x}, {y}")
return x + y
some_function()
result = another_function(5, 10)
print(f"Natija: {result}")
Asosiy bosqichlar:
- Tashqi funktsiya (fabrika) parametrlar bilan aniqlanadi.
- Fabrika ichida, dekoratsiya qilinadigan funktsiyani qabul qiladigan dekorator funktsiyasi aniqlanadi.
- Dekorator funktsiyasi ichida, dekoratorning logikasini o'z ichiga olgan va fabrikadan olingan parametrlar hamda dekoratsiya qilinadigan funktsiya argumentlaridan foydalanadigan qopqoq funktsiya aniqlanadi.
- Dekorator funktsiyasi qopqoq funktsiyasini qaytaradi.
- Fabrika, dekorator funktsiyasini qaytaradi.
Bu, moslashuvchan va sozlanadigan dekoratorlar yaratish uchun foydalidir.