Sobes.tech
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:

  1. Tashqi funktsiya (fabrika) parametrlar bilan aniqlanadi.
  2. Fabrika ichida, dekoratsiya qilinadigan funktsiyani qabul qiladigan dekorator funktsiyasi aniqlanadi.
  3. Dekorator funktsiyasi ichida, dekoratorning logikasini o'z ichiga olgan va fabrikadan olingan parametrlar hamda dekoratsiya qilinadigan funktsiya argumentlaridan foydalanadigan qopqoq funktsiya aniqlanadi.
  4. Dekorator funktsiyasi qopqoq funktsiyasini qaytaradi.
  5. Fabrika, dekorator funktsiyasini qaytaradi.

Bu, moslashuvchan va sozlanadigan dekoratorlar yaratish uchun foydalidir.