Python 3 - Classi - 2

# Attributi

- Come già per le variabili, gli attributi vengono definiti nel momento in cui gli si assegna un valore
- Gli attributi definiti all'interno della classe e fuori dai metodi sono nel contesto della classe
- Naturalmente verranno duplicati nel namespace delle istanze, quini ne avremo sempre due copie indipendenti: una <classe>.<attributo> statica ed una self.<attributo> associata all'istanza
- Se invece all'interno di un metodo definiamo un attributo come self.<attributo>, esso sarà esclusivamente associato all'istanza
- Per quanto riguarda gli attributi statici usati nella loro copia di istanza, occorre porre attenzione ai tipi mutabili
- Se noi abbiamo un attributo statico che si riferisce, ad esempio, una lista, l'attributo avrà una copia di istanza, che però si riferirà alla stessa lista
- Se in questo caso modifichiamo la lista tramite un metodo di lista (quindi non ne sostituiamo il riferimento), la modifica avrà effetto globale.

© Ing. Stefano Salvi - released under FDL licence