Sobes.tech
Middle+

Mi az a dekorátor gyár?

sobes.tech MI

Válasz az MI-től

A dekorátorgyár egy olyan függvény, amely egy dekorátort ad vissza. Argumentumokat fogad a visszakapott dekorátor viselkedésének beállításához. Ez lehetővé teszi újrafelhasználható dekorátorok létrehozását különböző viselkedéssel a megadott paraméterektől függően.

# Dekorátorgyár függvény
def my_decorator_factory(prefix):
    # Belső függvény (dekorátor), amely elfogadja a dekorálandó függvényt
    def my_decorator(func):
        # Egy másik belső függvény (burkoló), amely tartalmazza a dekorátor logikáját
        def wrapper(*args, **kwargs):
            print(f"{prefix}: A függvény hívása előtt")
            result = func(*args, **kwargs)
            print(f"{prefix}: A függvény hívása után")
            return result
        return wrapper
    return my_decorator

# A gyár használata különböző prefixekkel rendelkező dekorátorok létrehozásához
@my_decorator_factory("DEBUG")
def some_function():
    print("some_function futtatása")

@my_decorator_factory("INFO")
def another_function(x, y):
    print(f"another_function futtatása argumentumokkal {x}, {y}")
    return x + y

some_function()
result = another_function(5, 10)
print(f"Eredmény: {result}")

Fő lépések:

  1. Egy külső függvény (gyár) van definiálva paraméterekkel.
  2. A gyár belsejében egy dekorátor függvény van definiálva, amely elfogadja a dekorálandó függvényt.
  3. A dekorátor függvényen belül egy wrapper függvény van definiálva, amely tartalmazza a dekorátor logikáját, és használhatja a gyár paramétereit és a dekorálandó függvény argumentumait.
  4. A dekorátor függvény visszaadja a wrapper függvényt.
  5. A gyár visszaadja a dekorátor függvényt.

Ez hasznos rugalmas és konfigurálható dekorátorok létrehozásához.