Sobes.tech
Junior — Middle

Puteți explica ce reprezintă un decorator pentru metodele de clasă în Python?

sobes.tech AI

Răspuns de la AI

Un decorator pentru metodele de clasă în Python este o funcție care acceptă o metodă de clasă și returnează o versiune modificată a acesteia. Acesta permite adăugarea de comportamente suplimentare metodei fără a modifica codul său sursă.

De exemplu, se poate folosi un decorator pentru a înregistra apelurile metodei, a verifica drepturile de acces sau a stoca rezultatele în cache.

Exemplu de decorator simplu pentru o metodă de clasă:

class ClasaMea:
    def decorator(func):
        def wrapper(self, *args, **kwargs):
            print(f"Apelare metodă {func.__name__}")
            return func(self, *args, **kwargs)
        return wrapper

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

obiect = ClasaMea()
print(obiect.metoda(5))  # Va afișa un mesaj și rezultatul 10

Aici, @decorator înfășoară metoda metoda, adăugând o ieșire suplimentară la apel.