Тема: Правильний ООП підхід для рішення задачі
Привіт.
Отже, дано два класи:
Group , екземпляром якої є група студентів. груп може бути кілька
група містить студентів, які до неї належать і має instance метод додати студента
Student - екземпляр студент, має поле - name, може належати тільки до однієї групи або не належати до жодної.
питання - коли реалізовуємо метод Group().add_student(Student('Jan'))
де повинна зберігатися інформація про належність студента до якоїсь групи?
Зберігати на рівні Group список всіх груп і методом класу Group перевіряти - чи студент не входить в якусь з них?
class Group():
groups = set()
@classmethod
def which_group(cls, student):
res = []
for group in cls.groups:
if student in group.members:
res.append(group)
return res
def __init__(self, name):
self.name = name
self.members = set()
Group.groups.add(self)
def add_student(self, student):
if not Group.which_group(student):
self.members.add(student)
else:
print(student, 'already in some group')
class Student():
def __init__(self, name):
self.name = name
def enroll_to_group(self, group):
group.add_student(self)
наскільке таке рішення ідеологічно вірне?