@@ -39,4 +39,49 @@ def __eq__(self,other):
3939 if isinstance (other ):
4040 if other ._nome == self ._nome and other ._cognome == self ._cognome and other ._data_nascita == self ._data_nascita :
4141 return True
42- return False
42+ return False
43+
44+
45+ class Lavoratore (Persona , metaclass = ABCMeta ):
46+
47+ def __init__ (self ,nome , cognome , data_nascita , idbadge , mansione ):
48+ super ().__init__ (nome , cognome , data_nascita )
49+ if (len (idbadge ) != 8 ) or (idbadge .isalnum () == False ):
50+ raise ValueError ('Inserire un IBAN valido.' )
51+ self ._idbadge = idbadge
52+ self ._mansione = mansione
53+ logger .info ("E' stato inserito un lavoratore." )
54+
55+ def __str__ (self ):
56+ return super ().__str__ () + ' ' + self ._idbadge + ' ' + self ._mansione
57+
58+ def __eq__ (self , other ):
59+ if isinstance (other , Lavoratore ):
60+ if super ().__eq__ (other ) and other ._idbadge == self ._idbadge and other ._mansione == self ._mansione :
61+ return True
62+ return False
63+
64+ def __hash__ (self ):
65+ return hash ((super ().__hash__ (), self ._idbadge , self ._mansione ))
66+
67+ def get_idbadge (self ):
68+ return self ._idbadge
69+
70+ def set_idbadge (self , x ):
71+ if (len (x )< 0 ) or (len (x )> 8 ) or (x .isalnum () == False ):
72+ raise ('Inserisci un id valido' )
73+ else :
74+ self ._idbadge = x
75+
76+ def get_masnione (self ):
77+ return self ._mansione
78+
79+ def set_mansione (self , x ):
80+ if (len (x )< 0 ) or (x .isalpha () == False ):
81+ raise ('Inserisci una mansione valida' )
82+ else :
83+ self ._mansione = x
84+
85+ @abstractmethod
86+ def stipendio (self ):
87+ pass
0 commit comments