Sobes.tech
Junior — Middle

Můžete vysvětlit, co je dekorátor pro metody třídy v Pythonu?

sobes.tech AI

Odpověď od AI

Dekorátor pro metody třídy v Pythonu je funkce, která přijímá metodu třídy a vrací upravenou verzi této metody. Umožňuje přidat k metodě dodatečné chování bez změny jejího zdrojového kódu.

Například lze použít dekorátor pro zaznamenávání volání metody, kontrolu oprávnění nebo ukládání výsledků do cache.

Příklad jednoduchého dekorátoru pro metodu třídy:

class MojeTřída:
    def dekorator(func):
        def wrapper(self, *args, **kwargs):
            print(f"Volání metody {func.__name__}")
            return func(self, *args, **kwargs)
        return wrapper

    @dekorator
    def metoda(self, x):
        return x * 2

obj = MojeTřída()
print(obj.metoda(5))  # Vypíše zprávu a výsledek 10

Zde @dekorator obaluje metodu metoda a přidává dodatečný výstup při jejím volání.