salamoia di Python (sto parlando standard di Python 2.5/2.6/2.7 qui) non può salamoia serrature, oggetti file eccPerché i generatori non possono essere messi in salamoia?
Anche può non generatori di salamoia e le espressioni lambda (o qualsiasi altro codice anonimo), perché la salamoia davvero memorizza solo i riferimenti ai nomi.
In caso di serrature e le caratteristiche del sistema operativo-dipendente, la ragione per cui non si può Pickle loro è evidente e ha un senso.
Ma perché non riesci a decapitare i generatori?
Nota: solo per chiarezza - Mi interessa il motivo fondamentale (o ipotesi e scelte che è andato in questa decisione di progettazione) perché, non in "perché ti dà un sottaceto errore".
Mi rendo conto che la domanda è un po 'ampia, quindi ecco una regola empirica se la tua risposta è stata: "Se questi presupposti fossero stati sollevati, o il tipo di generatore consentito in qualche modo più limitato, i generatori di decapaggio funzionerebbero di nuovo?"
Quando avrebbe senso mettere sott'acqua un generatore? – NullUserException
@NullUser: Non è troppo difficile da immaginare; Stai iterando attraverso uno e vuoi fermare il tuo programma e poi riprendere da dove ti sei interrotto più tardi. –
... o riprendere allo stesso tempo, ma da un altro programma (= la serializzazione viene anche utilizzata nella trasmissione di rete) – Radim