rilevante


  rilevante > comp.lang.* > comp.lang.python

 #1  
10.02.2012, 09:19
Glauco
Avete idea di come risolvere questo?





from collections import defaultdict
import pickle

>>>pickle.dumps( defaultdict(lambda: 1) )


PicklingError: Can't pickle <function <lambda> at 0x97bde2c>: it's not
found as __main__.<lambda>




grazie
Gla
 #2  
10.02.2012, 09:33
Riccardo Lemmi
Glauco wrote:

> Avete idea di come risolvere questo?
>>
>> from collections import defaultdict

> import pickle
>> PicklingError: Can't pickle <function <lambda> at 0x97bde2c>: it's not

> found as __main__.<lambda>
>>

>
> grazie
> Gla


http://bytes.com/topic/python/answer...e-collections-
defaultdict-default_factory-set-do-not-work

basta definire la funzione invece di usare 'lambda'
 #3  
13.02.2012, 07:09
Glauco
>
> [..]
> defaultdict-default_factory-set-do-not-work
>
> basta definire la funzione invece di usare 'lambda'
>



Avevo letto qualcosa a riguardo ma questa soluzione non mi garbava...
poi ho trovato l'inghippo! (e questo mi č nuovo)

python
>>> import pickle, collections
>>> def fac(): return 1

....
>>> pickle.dumps( collections.defaultdict(fac) )

'ccollections\ndefaultdict\np0\n(c__main__\nfac\np 1\ntp2\nRp3\n.'


ipython
In [1]: import pickle, collections

In [2]: def fac(): return 1
...:

In [3]: pickle.dumps( collections.defaultdict(fac) )
PicklingError: Can't pickle <function fac at 0xa25d064>: it's not found
as __main__.fac



Acc! grazie Riccardo.
Gla
Discussioni simili
defaultdict e assegnazione

Voglio creare un defaultdict il cui __missing__ sia sempre default = dict(zip(list_data,(array(j) for j in list_type)))) con list_data = ('time', 'HV', 'I') list_type =...

modulo pickle

Qualche tempo fa chiesi un aiuto nel gruppo su come salvare su file una matrice cosė definita: a = numarray.zeros((sx+ts, sy+ts), "Float32") a[:] =...

dubbi su defaultdict

Salve a tutti č la prima volta che sto usando questa classe, e inciampo subito in un caso particolare :D io ho bisogno di una struttura del tipo...

defaultdict

Rispetto a linguaggi di livello piu' basso come C e ObjectPascal i linguaggi di livello piu' alto come Python hanno lo svantaggio di rendere piu' difficile prevedere la...


Tutti gli orari sono GMT. Attualmente sono le 09:31. | Privacy Policy