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<<