forked from TdP-2025/Libretto
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscuola.py
78 lines (60 loc) · 2.28 KB
/
scuola.py
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
class Person:
def __init__(self, nome, cognome, eta,
capelli, occhi, casa, incantesimo="Non ancora definito"):
self.nome = nome
self._cognome = cognome
self.eta = eta
self.capelli = capelli
self.occhi = occhi
self.casa = casa
self.__prova = None
self.incantesimo = incantesimo
def __str__(self):
return f"Person: {self.nome} {self._cognome} \n"
@property
def cognome(self): # eq. GETTER
return self._cognome
@cognome.setter
def cognome(self, value): # eq. SETTER
# CONTROLLI per verificare che value sia compativile con _cognome
self._cognome = value
class Student(Person):
def __init__(self, nome, cognome, eta,
capelli, occhi, casa, animale, incantesimo="Non ancora definito"):
super().__init__(nome, cognome, eta, capelli, occhi, casa, incantesimo)
self.animale = animale
def __str__(self):
return f"Student: {self.nome} - {self._cognome} - {self.casa} \n "
def __repr__(self):
return f"Student(nome, cognome, eta, capelli, occhi, casa, animale)"
def prettyPrint(self):
print("Voglio stampare meglio")
class Teacher(Person):
def __init__(self, nome, cognome, eta,
capelli, occhi, casa, materia, incantesimo="Non ancora definito"):
super().__init__(nome, cognome, eta, capelli, occhi, casa, incantesimo)
self.materia = materia
def __str__(self):
return f"Teacher: {self.nome} - {self._cognome} - {self.materia} \n "
class Casa:
def __init__(self, nome, studenti=[]):
self.nome = nome
self.studenti = studenti
def addStudente(self, studente):
self.studenti.append(studente) # --> [ x,x,x [s1, s2]]
# self.studenti.extend(studente) # --> [ x,x,x, s1, s2 ]
def __str__(self):
if len(self.studenti) == 0:
return f"La casa {self.nome} è vuota."
mystr = f"\n Lista degli studenti iscritti alla casa {self.nome} \n"
for s in self.studenti:
mystr += str(s)
return mystr
class Scuola:
def __init__(self, case):
self.case = case
def __str__(self):
mystr = ""
for c in self.case:
mystr += str(c)
return mystr