Podstawy programowania obiektowego w Pythonie cz.3

Zmienna klasy może przechowywać np. liczbę wszystkich pracowników przedsiębiorstwa. Ma taką samą wartość niezależnie czy wywołuje się ją z klasy czy z jakiejkolwiek jej instancji. Inkrementację zmiennej klasowej przechowującej liczbę pracowników można umieścić np. w metodzie __init__(), wtedy utworzenie nowego pracownika zwiększa wartość zmiennej klasowej.

Można jednakże utworzyć zmienną instancji o takiej samej nazwie jak zmienna klasy. W takim przypadku zmienna klasowa zostanie przesłonięta przez wartość atrybutu tzn.

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

john_doe = Employee()
print(john_doe.bonus)   # wyświetla wartość 10
john_doe.set_bonus(20)  # ustalenie specjalnej wartości premii
print(john_doe.bonus)   # wyświetla wartość 20 - premia dla pracownika
print(Employee.bonus)   # wyświetla wartość 10 - bazowa premia   

>>część czwarta<<

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *