[Python] Confronto dizionari.

Giovanni Porcari giovanni.porcari a softwell.it
Gio 11 Feb 2021 11:48:22 CET



> Il giorno 2 feb 2021, alle ore 12:14, Gabriele Battaglia <iz4apu a 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. 


Scritto al volo e senza testare nulla :D

Ciao

G


Maggiori informazioni sulla lista Python