Skip to content

Commit 0914ba4

Browse files
committed
fixed bugs, implemented class StudenteDip and added some tasks in main
1 parent 7b54f73 commit 0914ba4

2 files changed

Lines changed: 47 additions & 23 deletions

File tree

main.py

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,11 @@
1-
2-
3-
4-
5-
6-
71
from pickle import FALSE
8-
from persona import Dipendente, LavoratorePiva, Studente, Check, stipendi, Studenteiva
2+
from persona import Dipendente, LavoratorePiva, Studente, Check, stipendi, Studenteiva, StudenteDip
93
from datetime import datetime
104

115

126

137
if __name__ == "__main__":
8+
149
studenti_list = [ Studente('Fabiana', 'Verdi', False, 51, datetime(1995,3,10), 1, 'Filosofia', [(70, 200), (30, 50)], {'Metafisica':(10, 30, True)}),
1510
Studente('Nicola', 'Rossi', True, 79, datetime(1994,3,10), 2, 'Biologia', [(17, 300), (45, 100)], {'Biochimica':(8, 28, False)}),
1611
Studente('Giovanni', 'Venti', True, 83, datetime(1994,5,12), 3, 'Filosofia', [(20, 50), (30, 100)], {'Etica':(10, 18, False)}),
@@ -30,6 +25,8 @@
3025
LavoratorePiva('Bianca', 'Sandri', False, 47, datetime(1997,7,9), 4, 'fattorino', 300, 5),
3126
LavoratorePiva('Walid', 'Abdellatif', True, 78, datetime(1994,4,16), 4, 'Driettore', 500, 6)
3227
]
28+
for i in studenti_list:
29+
print(i)
3330

3431
for i in Check.max_media_studenti(studenti_list):
3532
print(i)
@@ -42,7 +39,14 @@
4239
Check.aumento_a_livello('inserviente', 5, 2000)
4340
print(stipendi)
4441

45-
46-
obj=Studenteiva('Fabiana', 'Verdi', False, 51, datetime(1995,3,10), 1, 'Filosofia', [(70, 200), (30, 50)], {'Metafisica':(10, 30, True)},1, 'consulente', 300, 5)
47-
print(obj)
48-
42+
mix_list = list()
43+
mix_list.extend(studenti_list)
44+
mix_list.extend(dipendenti_list)
45+
mix_list.extend(lavoratoriPIva_list)
46+
mix_list.append(Studenteiva('Fabiana', 'Verdi', False, 51, datetime(1995,3,10), 1, 'Filosofia', [(70, 200), (30, 50)], {'Metafisica':(10, 30, True)},1, 'consulente', 300, 5))
47+
48+
mix_list.append(StudenteDip('Fabiana', 'Bianchi', False, 51, datetime(1995, 3, 10), 1, 'Filosofia', [(70, 200), (30, 50)],
49+
{'Metafisica': (10, 30, True)}, 1, 'consulente', 4))
50+
solo_stud_lavoratori = list(filter(lambda x: isinstance(x, Studenteiva) or isinstance(x, StudenteDip), mix_list))
51+
for i in solo_stud_lavoratori:
52+
print(i)

persona.py

Lines changed: 32 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -81,10 +81,10 @@ def __init__(self, msg):
8181

8282

8383
class Persona(metaclass=ABCMeta):
84-
def __init__(self,nome, cognome, data_nascita, sesso, peso):
84+
def __init__(self,nome, cognome, sesso, peso, data_di_nascita):
8585
self._nome=nome
8686
self._cognome=cognome
87-
self._data_nascita=data_nascita
87+
self._data_nascita=data_di_nascita
8888
self._sesso=sesso
8989
self._peso=peso
9090

@@ -233,8 +233,7 @@ def __init__(self, nome: str, cognome: str, sesso: bool, peso: int, data_di_nasc
233233
assert len(e) == 3
234234
assert isinstance(e[0], int) and isinstance(e[1], int) and isinstance(e[2], bool)
235235
assert 18 <= e[1] <= 30
236-
#assert e[1] != 30 and e[3] is True
237-
if e[1] != 30:
236+
if e[1] != 30:
238237
assert e[2] is False
239238
assert isinstance(nome, str)
240239
assert isinstance(cognome, str)
@@ -244,14 +243,20 @@ def __init__(self, nome: str, cognome: str, sesso: bool, peso: int, data_di_nasc
244243
assert len(a) == 2
245244
assert 0 <= a[0] <= 100
246245

247-
super().__init__(nome, cognome,sesso,peso,data_di_nascita)
246+
super().__init__(nome, cognome, sesso, peso, data_di_nascita)
248247
self._matricola = matricola
249248
self._corso_di_studio = corso_di_studio
250249
self._alchool = alchool
251250
self._esami = esami
252251
logger.info(f"Studente {self._nome} {self._cognome}, matricola {self._matricola}, iscritto al corso di studio "
253252
f"{self._corso_di_studio}")
254253

254+
def __init2__(self, matricola: int, corso_di_studio: str, alchool: list, esami: dict):
255+
self.matricola = matricola
256+
self.corso_di_studio = corso_di_studio
257+
self.alchool = alchool
258+
self.esami = esami
259+
255260
def __eq__(self, other):
256261
"""
257262
funziona equal che paragona se due studenti sono uguali usando il numero matricola.
@@ -290,6 +295,12 @@ def __init__(self,nome, cognome, sesso, peso, data_nascita, idbadge, mansione, t
290295
self._ore_lavorate=ore_lavorate
291296
logger.info("E' stato inserito un lavoratore con P.iva.")
292297

298+
def __init2__(self, idbadge, mansione, tariffa_gg, ore_lavorate):
299+
self.set_idbadge(idbadge)
300+
self.set_mansione(mansione)
301+
self.set_tariffa_gg(tariffa_gg)
302+
self.set_ore_lavorate(ore_lavorate)
303+
293304
def __str__(self):
294305
return super().__str__() + ' ' + self._tariffa_gg + ' ' + self._ore_lavorate
295306

@@ -340,6 +351,12 @@ def __init__(self, nome, cognome, sesso, peso, data_nascita, idbadge, mansione,
340351
self._livello = livello
341352
logger.info("E' stato inserito un dipendente.")
342353

354+
def __init2__(self, idbadge, mansione, livello):
355+
self.set_idbadge(idbadge)
356+
self.set_mansione(mansione)
357+
self.set_livello(livello)
358+
359+
343360
def __str__(self):
344361
return super().__str__() + ' ' + self._livello
345362

@@ -416,14 +433,17 @@ def aumento_a_livello(mansione, livello, aumento):
416433
stipendi[mansione][livello] = stipendi[mansione][livello] + aumento
417434

418435

419-
420436
class Studenteiva (Studente, LavoratorePiva):
421437
def __init__(self, nome, cognome, sesso, peso, data_di_nascita, matricola,
422438
corso_di_studio, alchool, esami, idbadge, mansione, tariffa_gg, ore_lavorate):
423-
Studente.__init__(self,nome, cognome, sesso, peso, data_di_nascita, matricola,
424-
corso_di_studio, alchool, esami)
425-
LavoratorePiva.__init__(self,nome, cognome, sesso, peso, data_di_nascita, idbadge, mansione, tariffa_gg, ore_lavorate)
426-
439+
Persona.__init__(self, nome, cognome, sesso, peso, data_di_nascita)
440+
Studente.__init2__(self, matricola, corso_di_studio, alchool, esami)
441+
LavoratorePiva.__init2__(self, idbadge, mansione, tariffa_gg, ore_lavorate)
427442

428-
429-
443+
444+
class StudenteDip(Studente, Dipendente):
445+
def __init__(self, nome, cognome, sesso, peso, data_di_nascita, matricola,
446+
corso_di_studio, alchool, esami, idbadge, mansione, livello):
447+
Persona.__init__(self, nome, cognome, sesso, peso, data_di_nascita)
448+
Studente.__init2__(self, matricola, corso_di_studio, alchool, esami)
449+
Dipendente.__init2__(self, idbadge, mansione, livello)

0 commit comments

Comments
 (0)