[Python] Confronto dizionari.

Gabriele Battaglia iz4apu a libero.it
Gio 11 Feb 2021 12:06:21 CET


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 <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.
> 
> 
Wow Giovanni, molto fika l'idea!
La prossima volta che mi trovo ad affrontare una situazione simile, 
provo ad implementarla.
TNX.

Ciao.

Gabry.


Maggiori informazioni sulla lista Python