Манипуляция объектами в классах в ООП в Python
Классы параметрами методов могут принимать объекты других классов и манипулировать этими объектами. Давайте посмотрим на примере. Пусть у нас есть следующий класс:
class User:
def __init__(self, name):
self.__name = name
@property
def name(self):
return self.__name
Пусть мы решили сделать класс, который будет манипулировать набором объектов с юзерами:
class UsersCollection:
pass
Будем хранить объекты с юзерами в виде списка в приватном свойстве:
class UsersCollection:
def __init__(self):
self.__users = []
Сделаем метод для добавления нового юзера в список:
class UsersCollection:
def __init__(self):
self.__users = []
def add(self, user):
self.__users.append(user)
А теперь сделаем метод, который выведет имена всех юзеров:
class UsersCollection:
def __init__(self):
self.__users = []
def add(self, user):
self.__users.append(user)
def show(self):
for user in self.__users:
print(user.name)
Давайте посмотрим на работу нашего класса. Для начала создадим его объект:
uc = UsersCollection()
Теперь добавим в нашу коллекцию несколько юзеров:
uc.add(User('john'))
uc.add(User('eric'))
uc.add(User('kyle'))
А теперь вызовем метод, который выведет имена всех юзеров:
uc.show()
Сделайте класс EmployeesCollection,
который будет содержать список работников.
Сделайте в этом классе метод для добавления нового работника.
Сделайте в этом классе метод для вывода всех работников.
Сделайте в этом классе метод для расчета суммарной зарплаты всех работников.
Сделайте в этом классе метод для расчета средней зарплаты всех работников.