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 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
> Il giorno 11 feb 2021, alle ore 11:48, Giovanni Porcari
> ha scritto:
>
> 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__
Ho scritto pe
> Il giorno 11 feb 2021, alle ore 12:26, Massimo Masson
> ha scritto:
>
> Giovanni sei sempre "sul pezzo" in modo devastante!
> Fantastico!
>
> E, aggiungerei, una soluzione che... non usa le Bag!!!
> hahaha!!! :-)
In realtà è il modo in cui la Bag implementa i trigger :D
G
Il 11/02/2021 11:48, Giovanni Porcari ha scritto:
[...]
Potresti usare un approccio più originale.
Ovvero creare una classe che potresti chiamare ‘DizionarioSpione’
[...]
In questo modo dopo la chiamata alka tua funzione spiadict._changes ti darà
l’elenco di tutti i cambiamenti.
Giovanni s
> Il giorno 2 feb 2021, alle ore 12:14, Gabriele Battaglia
> 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 flagg
Reply to the Federico Fissore's message, wrote on 02/02/2021 at 12:31:
Ok Federico, è chiaro ora.
Grazie.
Gabry.
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python
Reply to the Federico Fissore's message, wrote on 02/02/2021 at 11:44:
Ciao Federico, interessante la tua risposta, ti chiedo un chiarimento.
Gabriele Battaglia wrote on 02/02/21 11:28:
Che cosa mi sfugge? d.copy non dovrebbe creare un dizionario nuovo,
svincolato dai riferimenti alle variabili
Reply to the Ernesto Arbitrio's message, wrote on 02/02/2021 at 11:38:
Ciao Gabriele, non ho capito molto bene il tuo problema, ma copy fa una
copia shallow ovvero "only one level deep", se vuoi una copia completa
considerando tutti i livelli di nesting devi usare deepcopy.
Ciao Ernesto.
Sì,
Buongiorno a tutti.
Ho questo problema da risolvere.
>>> d={}
>>> l=['io',15]
>>> d[1]=l
>>> d
{1: ['io', 15]}
>>> c=d
>>> d[1][1]=20
>>> c
{1: ['io', 20]}
E fin qui, capisco il comportamento di Python.
In un mio programma ho una funzione che agisce su di un dato dizionario:
d = My_Funct(d)
Q
Gabriele Battaglia wrote on 02/02/21 12:13:
Ma allora che differenza c'è fra c=d e c=d.copy()
Se, come dici, ci mette dentro tutto ciò che contiene l'origine senza
modificarli... allora è una semplice assegnazione come quella
dell'operatore "=", giusto?
la differenza è che copy ti da un dizio
On Tue, Feb 2, 2021 at 11:52 AM Gabriele Battaglia wrote:
> Reply to the Ernesto Arbitrio's message, wrote on 02/02/2021 at 11:38:
> > Ciao Gabriele, non ho capito molto bene il tuo problema, ma copy fa una
> > copia shallow ovvero "only one level deep", se vuoi una copia completa
> > considerand
Gabriele Battaglia wrote on 02/02/21 11:28:
Che cosa mi sfugge? d.copy non dovrebbe creare un dizionario nuovo,
svincolato dai riferimenti alle variabili, l, contenuti nell'origine, d?
`dict.copy` fa una "shallow copy", cioè crea un nuovo dizionario e ci
mette dentro chiavi e valori dell'ori
Ciao Gabriele, non ho capito molto bene il tuo problema, ma copy fa una
copia shallow ovvero "only one level deep", se vuoi una copia completa
considerando tutti i livelli di nesting devi usare deepcopy.
Se mi spieghi meglio cosa deve fare il tuo programma, provo a risponderti
in modo piu preciso.
13 matches
Mail list logo