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.




(fractions_gcd)

Usando tale funzione, possiamo scrivere la nostra funzione di riduzione simplify, chiedendo alla frazione di ridursi ai minimi termini, come segue.




(fractions_simplify)

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.

Next Section - Uguaglianza