このようなことをしようとするシリアライザをPythonで実装しようとしています。
Bar への前方参照を持つオブジェクト Foo がある場合、シリアライザーはすべてのデータを Foo にダンプし、参照は Bar のデータ ダンプに変換されます。任意の深さに対して、このように再帰的に処理が行われます。
しかし、このアプローチで遭遇する問題があります。循環参照の問題です。Foo が Bar を参照し、Bar が Foo を参照するとどうなるでしょうか。その場合、無限再帰が作成されます。
この問題に取り組むためのアプローチは何ですか。
注: シリアル化するデータを制御できないため、循環参照を除外することはできません。