Sobes.tech
Junior — Middle

Ar galite paaiškinti, kas yra dekoratorius klasės metodams Python'e?

sobes.tech AI

Atsakymas iš AI

Python klasės metodų dekoratorius yra funkcija, kuri priima klasės metodą ir grąžina šio metodo modifikuotą versiją. Tai leidžia pridėti papildomą elgesį prie metodo be jo šaltinio kodo keitimo.

Pavyzdžiui, galima naudoti dekoratorių metodų kvietimų registravimui, prieigos teisių tikrinimui arba rezultatų talpinimui į talpyklą.

Paprasto klasės metodo dekoratoriaus pavyzdys:

class ManoKlasė:
    def dekorator(func):
        def wrapper(self, *args, **kwargs):
            print(f"Kvietimas į metodą {func.__name__}")
            return func(self, *args, **kwargs)
        return wrapper

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

obj = ManoKlasė()
print(obj.metodas(5))  # Išves žinutę ir rezultatą 10

Čia, @dekorator apgaubia metodas metodą ir prideda papildomą išvestį kvietimo metu.