Геттер через декоратор в ООП в Python
Пусть у нас есть следующий класс с приватными свойствами:
class User:
def __init__(self, name, surn):
self.__name = name
self.__surn = surn
Как вы видите, эти свойства задаются один раз при создании объекта. Сейчас, однако, эти свойства невозможно прочитать, ведь они приватные и нет соответствующих способов для этого.
Давайте сделаем для наших данных
свойства с декоратором property,
позволяющие прочитать их снаружи:
class User:
def __init__(self, name, surn):
self.__name = name
self.__surn = surn
@property
def name(self):
return self.__name
@property
def surn(self):
return self.__surn
Давайте проверим их работу. Создадим объект, параметром передав данные юзера:
user = User('john', 'smit')
Прочитаем эти данные через свойства:
print(user.name)
print(user.surn)
В классе Employee сделайте
три приватных свойства: имя, зарплату
и возраст.
Передайте параметром конструктора значения этих свойств.
Сделайте так, чтобы имя, зарплату и возраст можно было прочитать снаружи.