Podstawy programowania obiektowego w Pythonie cz.4

Analogicznie jak w przypadku atrybutów i zmiennych klasowych, taki sam podział można zaobserwować dla metod czyli funkcji zawartych w klasie.

Metody instancji w definicji jako pierwszy argument muszą posiadać referencję do instancji klasy – self np.

class Employee:
    bonus = 10
    def set_bonus(self, bonus):
        self.bonus = bonus

Powyższa metoda set_bonus ustawia zmienną instancji, która przesłania zmienną klasową bonus.

Gdy jednak chcemy utworzyć metodę klasową, to musimy użyć argumentu cls zamiast self, czyli referencja do klasy a nie do instancji. Ponadto należy użyć dekoratora @classmethod tzn.

@classmethod
    def set_base_bonus(cls, bonus):
        cls.bonus = bonus

Powyższa metoda ustawi bazową wartość zmiennej bonus w klasie Employee i wszystkich jej instancjach.

>>część piąta<<