Sobes.tech
Junior — Middle

El tudná magyarázni, hogy mi az a dekorátor osztálymódszerekhez Pythonban?

sobes.tech MI

Válasz az MI-től

A Python osztálymódszereihez tartozó dekorátor egy olyan függvény, amely elfogad egy osztálymódszert, és visszaad egy módosított változatát ennek a módszernek. Lehetővé teszi, hogy további viselkedést adjunk hozzá a módszerhez anélkül, hogy megváltoztatnánk a forráskódját.

Például, használhatunk dekorátort a módszer hívásainak naplózására, hozzáférési jogok ellenőrzésére vagy eredmények gyorsítótárazására.

Egyszerű példa egy osztálymódszer dekorátorra:

class SajátOsztály:
    def dekorátor(func):
        def wrapper(self, *args, **kwargs):
            print(f"{func.__name__} módszer hívása")
            return func(self, *args, **kwargs)
        return wrapper

    @dekorátor
    def módszer(self, x):
        return x * 2

obj = SajátOsztály()
print(obj.módszer(5))  # Üzenetet és eredményt, 10-et fog kiírni

Itt, a @dekorátor körülveszi a módszer metódust, és extra kimenetet ad hozzá a híváskor.