Aggiungere Altri Metodi alla nostra Classe¶
Il vantaggio chiave di usare una classe come Point
piuttosto che una semplice tupla (7, 6)
risiede nel fatto che adesso possiamo aggiungere metodi alla classe Point
che corrispondono a operazioni che questi punti possono effettuare. In particolare, possiamo raggruppare insieme tutte queste operazioni e i tipi di dati a cui si applicano e ogni istanza della classe può avere il suo stato.
Un metodo si comporta come una funzione ma è invocata su una specifica istanza. Per esempio, data una tartaruga di nome tess
, tess.right(90)
chiede all’oggetto tess
di eseguire il metodo
right
per girarsi di 90 gradi. I metodi sono acceduti con la notazione punto.
Aggiungiamo dei metodi per consentire a un punto di comunicarci il suo stato. Il metodo getX
quando invocato ritornerà il valore della coordinata x. Una cosa da notare è che il metodo getX
ha bisogno di un parametro formale self
. Tutti i metodi definiti in una classe che operano su oggetti di quella class avranno self
come primo parametro. Questo parametro serve come riferimento all’oggetto di cui si vuole conoscere lo stato.
Nota che il metodo getX
(e anche il metodo getY
) ritorna semplicemente il valore di self.x
dell’oggetto itself.
Aggiungiamo un altro metodo, distanceFromOrigin
per calcolare la distanza dall’origine. Ancora una volta la dichiarazione del metodo include come parametro self
. Notiamo che l’invocazione non sta esplicitando tale parametro tra le parentesi, ma prima del punto. Questo è vero per tutte le invocazioni: la definizione del metodo ha sempre un parametro in più tra parentesi rispetto a ogni sua invocazione.