私はある種のフレームワークを開発しています。システムに動作を追加するために他の開発者によってサブクラス化される基本クラスを提供しています。これらのクラスのインスタンスには、それらのインスタンスの__dict__
. さらに興味深いことに、これらのクラスの一部は、いつでも動的に作成できます。
フレームワークでいくつかのことを処理したいと思います。つまり、これらのインスタンスを永続化し、それらの属性値をユーザーに表示し、それらの値を使用してインスタンスを検索/フィルター処理できるようにする必要があります。
リレーショナル データベースを使用する必要があります。そこにはまともなpython OOデータベースがいくつかあることは知っていますが、残念ながら、この場合はオプションではありません。
私も本格的な ORM を探しているわけではありません...そして、いくつかのクラスを動的に作成できることを考えると、オプションでさえないかもしれません。
それで、私の質問は、後でデシリアライズできるようにするために、Python インスタンスのどの状態をシリアライズする必要があるかということです。を見るだけで十分__dict__
ですか、それとも使用すべき他のプライベート属性はありますか?
属性値を検索/フィルタリングするには、インスタンスを unpickle する必要があるため、インスタンスを pickle 化するだけでは十分ではありません。データが多すぎてメモリ内で (データベースに実行させるのではなく) 実行できないのではないかと心配しています。