Sobes.tech
Junior — Middle

Czy możesz wyjaśnić, czym jest dekorator dla metod klasy w Pythonie?

sobes.tech AI

Odpowiedź od AI

Dekorator dla metod klasy w Pythonie to funkcja, która przyjmuje metodę klasy i zwraca zmodyfikowaną wersję tej metody. Pozwala dodać dodatkowe zachowanie do metody bez zmiany jej kodu źródłowego.

Na przykład, można użyć dekoratora do logowania wywołań metody, sprawdzania uprawnień dostępu lub buforowania wyników.

Przykład prostego dekoratora dla metody klasy:

class MojaKlasa:
    def dekorator(func):
        def wrapper(self, *args, **kwargs):
            print(f"Wywołanie metody {func.__name__}")
            return func(self, *args, **kwargs)
        return wrapper

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

obj = MojaKlasa()
print(obj.metoda(5))  # Wyświetli wiadomość i wynik 10

Tutaj, @dekorator opakowuje metodę metoda, dodając dodatkowe wyjście podczas wywołania.