Uno scenario aggiuntivo è simile all'utilizzo in Python e C # delle proprietà, ma in lingue che non hanno la funzione.
In generale, puoi dichiarare qualcosa solo come membro della classe; diciamo 'nome' come stringa. Ciò significa che accedici in questo modo:
someobject.name
In seguito, decidi che il nome deve davvero dipendere da cosa c'è nell'oggetto. Quindi dovrebbe essere davvero una funzione. Oops! Anche senza argomenti, significa che tutto il codice che lo accede ora deve essere cambiato in
someobject.name()
Ma se hai molte istanze di questa chiamata, le probabilità che non ci sia nulla di sbagliato in questo sono piuttosto basse - da qualche parte questa modifica non verrà effettuata, il programma si bloccherà quando arriverai a quel punto, ecc.
Proprietà in C # / Python ti permettono di sostituire una funzione in quello che era un attributo, pur continuando a permetterne l'accesso come un attributo, cioè senza modifiche. Non devi nemmeno aver pianificato in anticipo.
Se il tuo linguaggio non ha questo, devi pianificare in anticipo, ma puoi ancora supportarlo come facevano le persone prima facendone una funzione dall'inizio che non fa nulla. All'inizio, non farà nulla di interessante, e sembra che dovrebbe essere rimosso, e molte funzioni di questo tipo non vengono mai cambiate. Ma più tardi, se ti rendi conto che in realtà ogni volta che chiami Widget.wtr
devi rimuovere alcuni caratteri speciali, non è un grosso problema - è già una funzione, basta aggiungerla e il gioco è fatto.
TL; DR Questo potrebbe essere solo un programmatore saggio che pianifica in anticipo le modifiche future.