Gli Oggetti sono Mutabili¶
Possiamo cambiare lo stato di un oggetto facendo un assegnamento alla sue variabili di istanza, ovvero i suoi attributi.
Per esempio, potremmo cambiare il numeratore di una frazione assegnando un nuovo valore a self.num
. Allo stesso modo possiamo modificare self.den
.
Per esempio, ciò ha molto senso quando vogliamo ridurre ai minimi termini, dividendo il numeratore e il denominatore per un divisore comune. Se tale divisore è l’MCD, otteniamo la frazione ridotta ai minimi termini, che non può essere ulteriormente ridotta.
L’MCD può essere trovato come segue, applicando l’algoritmo di Euclide.
Usando tale funzione, possiamo scrivere la nostra funzione di riduzione simplify
, chiedendo alla frazione di ridursi ai minimi termini, come segue.
Notiamo che la funzione gcd
non è un metodo della classe, ma è solo usato dalla classe. In questo senso si tratta di una funzione ausiliaria. Inoltre il metodo simplify
non ritorna nulla, in quanto il suo unico obiettivo è quello di modificare lo stato dell’oggetto. Per questo motivo, metodi di questo tipo sono chiamati mutator perché cambiano lo stato interno dell’oggetto.