Mi sono trovato RuntimeError: maximum recursion depth exceeded
quando provavo a decapare un oggetto ad albero ricorsivo. Molto simile a this asker here.Python: Pickling oggetti altamente ricorsivi senza usare `setrecursionlimit`
Ha risolto il problema impostando il limite di ricorsione più alto con sys.setrecursionlimit
. Ma non voglio farlo: penso che sia più una soluzione alternativa che una soluzione. Perché voglio essere in grado di mettere sottoterra i miei alberi anche se contengono 10.000 nodi. (Attualmente non riesce a circa 200.)
(Inoltre, il limite di ricorsione vera di ogni piattaforma è diversa, e vorrei davvero evitare di aprire questo vaso di Pandora.)
Esiste un modo per risolvere questo a il livello fondamentale? Se solo il modulo pickle dovesse decapare usando un ciclo invece di ricorsione, non avrei avuto questo problema. Forse qualcuno ha un'idea di come possa accadere qualcosa del genere, senza riscrivere il modulo pickle?
Qualsiasi altra idea su come posso risolvere questo problema sarà apprezzata.
Di che albero è? Perché deve essere decapato dopo migliaia di nodi?(solo cercando di pensare fuori dagli schemi, ma avrei bisogno di più informazioni ...) – bwawok
L'albero è un albero del tempo di una simulazione. Un po 'simile all'albero di commit di un sistema di controllo del codice sorgente. –
Non puoi serializzarlo iterativamente con un BFS? –