-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathStudent_group
60 lines (43 loc) · 1.5 KB
/
Student_group
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
class Human:
def __init__(self, gender, age, first_name, last_name):
self.gender = gender
self.age = age
self.first_name = first_name
self.last_name = last_name
def __str__(self):
return f'{self.first_name} {self.last_name}, age:{self.age}, gender:{self.gender}'
class Student(Human):
def __init__(self, gender, age, first_name, last_name, record_book):
super().__init__(gender, age, first_name, last_name)
self.record_book = record_book
def __str__(self):
return f'{super().__str__()}, {self.record_book}'
class Group:
def __init__(self, number):
self.number = number
self.group = set()
def add_student(self, student):
self.group.add(student)
def delete_student(self, last_name):
res = self.find_student(last_name)
self.group.discard(res)
def find_student(self, last_name):
for student in self.group:
if student.last_name == last_name:
return student
return None
def __str__(self):
all_students = ''
for student in self.group:
all_students += f'{str(student)}\n'
return f'Number:{self.number}\n{all_students} '
st1 = Student('Male', 30, 'Steve', 'Jobs', 'AN142')
st2 = Student('Female', 25, 'Liza', 'Taylor', 'AN145')
gr = Group('PD1')
gr.add_student(st1)
gr.add_student(st2)
print(gr)
gr.find_student('Jobs')
gr.find_student('Jobs2') # None
gr.delete_student('Taylor')
print(gr) # Only one student