Reply to the Giovanni Porcari's message, wrote on 11/02/2021 at 11:48:


Il giorno 2 feb 2021, alle ore 12:14, Gabriele Battaglia <iz4...@libero.it> ha 
scritto:

Questo mi risparmia di scrivere un bel po di codice perchè la funzione che agisce su 
d è lunga e complessa, con una marea di condizioni annidate e per ciascuna avrei 
dovuto dire..."se succede questo allora flagga True il tosave.... così per 
tante tante volte fino alla fine della funzione dove potevo poi restituirlo con 
return.
Invece l'idea del confronto di d entrante e uscente mi sembrava veloce.
C'è qualche motivo, di carattere generale... per cui non si dovrebbe fare?
Chiedo per imparare. :)

Potresti usare un approccio più originale.
Ovvero creare una classe che potresti chiamare ‘DizionarioSpione’
spiadict=DizionarioSpione(miodict)
Il dizionario spione nella init definisce un self._changes =[]
Inoltre ridefinisce la __setattr_ in modo che ad ogni chiamata per cambiare il 
valore vada ad aggiungere alla lista dei cambiamenti una tupla di chiave e 
valore e poi chiami la super di __setattr__

In questo modo dopo la chiamata alka tua funzione spiadict._changes ti darà 
l’elenco di tutti i cambiamenti.


Wow Giovanni, molto fika l'idea!
La prossima volta che mi trovo ad affrontare una situazione simile, provo ad implementarla.
TNX.

Ciao.

Gabry.
_______________________________________________
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python

Rispondere a