User Tools

Site Tools


appunti3s:python_oggetti_e_attributi

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
appunti3s:python_oggetti_e_attributi [2020/06/08 22:19] – external edit 127.0.0.1appunti3s:python_oggetti_e_attributi [2020/08/01 11:11] (current) profpro
Line 19: Line 19:
 </file> </file>
 Questo metodo imposta il titolo della finestra, memorizzandolo in una variabile/oggetto interna all'oggetto "root". In effetti tutti gli oggetti al loro interno sono costituiti da altri oggetti o da semplici variabili e questi elementi sono chiamati //attributi// dell'oggetto. Il programmatore non ha quasi mai la possibilità di modificare direttamente queste variabili, per esempio tramite un'assegnazione, ma deve usare i metodi predisposti per fare questo tipo di operazioni. Questo metodo imposta il titolo della finestra, memorizzandolo in una variabile/oggetto interna all'oggetto "root". In effetti tutti gli oggetti al loro interno sono costituiti da altri oggetti o da semplici variabili e questi elementi sono chiamati //attributi// dell'oggetto. Il programmatore non ha quasi mai la possibilità di modificare direttamente queste variabili, per esempio tramite un'assegnazione, ma deve usare i metodi predisposti per fare questo tipo di operazioni.
 +
 +Secondo la programmazione orientata agli oggetti, gli attributi "dato" delle classi e delle istanze devono essere difficili da modificare direttamente dal programmatore, ma solo tramite degli appositi attributi "metodi".
  
 I metodi possono essere divisi in due categorie: I metodi possono essere divisi in due categorie:
   * metodi ispettori   * metodi ispettori
   * metodi manipolatori   * metodi manipolatori
 +
 +  * I primi sono usati per vedere il dato senza modificarlo.
 +  * I secondi sono usati per modificare il dato (senza vederlo).
 +
 +Questo modo di scrivere il programma può sembrare difficile e innaturale, ma permette di avere dei vantaggi nella manutenzione del programma.
 +
 +====Attributi pubblici e privati====
 +Per rendere difficile modificare un attributo "dato", di solito lo si rende "privato". In altre parole si deve limitare la sua possibilità di accesso da parte del programma.
 +Viceversa i dati che non sono privati, sono detti pubblici, cioè chiunque vi può accedere da qualsiasi punto del programma.
 +
 +In Python per rendere pubblico o privato qualcosa, basta usare una convenzione sul nome:
 +  * %%__esempio1%% 
 +    * è la convenzione da usare per un elemento privato
 +  * esempio2 
 +    * è la convenzione da usare per un elemento pubblico
 +  * %%__esempio3__%% 
 +    * è la convenzione da usare per un elemento built-in (pubblico), una convenzione che il programmatore non dovrebbe mai adottare
 +
 +Nel caso in cui si tenti di invocare un metodo privato, si ottiene un errore poco chiaro: 
 +
 +  AttributeError: 'Classe' instance has no attribute '__esempio1'
appunti3s/python_oggetti_e_attributi.1591647599.txt.gz · Last modified: 2020/06/08 22:19 by 127.0.0.1