を超えました各セルはその隣にポインタを持ちます。この特定のCAでは、256個のセルがある。さて、ピックラーはすでにピクルされたオブジェクトを認識できるはずです。のpython Picklerさん再帰の深さは、私は私のセルオートマトンクラスのインスタンスを酸洗しようとしているが、私はこのエラーを取得
From docs:
*The pickle module keeps track of the objects it has already serialized, so that later references to the same object won’t be serialized again.
私は実際にはわからないのですが、なぜ最大再帰深度を超えているのですか?
ピックラーは深さ優先酸洗を行っているので、最初にポインタをたどり、再帰スタックを超過して例外を発生させると思います。私はsys.setrecursionlimit()
で最大再帰深度を拡張できることを知っていますが、その優れた拡張性のあるソリューションは考慮しません。
最初の質問:pickler depth-first pickling?
第2質問:どのようにこの例外を防止するか考えていますか?
投稿できるコードはどれですか? –
はい、 'pickle'は深さ優先です。残念ながら、私はこの周りにはないと思う。 'cPickle'を試してみてくださいが、おそらく同じエラーが出ます。 –
@AswinMurugesh実際に私は投稿するにはあまりにも多くのコードを持っています。あなたが興味を持っている場合は、ここにいくつかのキーファイルがあります: [近所](https://github.com/mirobeka/cellular-automata/blob/master/cellular_automata/lattices/neighbourhoods.py) [セル](https:///github.com/mirobeka/cellular-automata/blob/master/cellular_automata/cells/regular.py#L21) [酸洗](https://github.com/mirobeka/cellular-automata/blob/master/cellular_automata/) lattices/equiangular.py#L210) Exp:cPickleは同じです、私は前にそれを試しました。私はこの答えを恐れていた –