我想以模塊化的方式執行一些對象圖的序列化。那是我不想序列化整個圖。原因是這張圖很大。我可以保留圖的某些部分的時間戳版本,並且我可以做一些懶惰的訪問來推遲加載我現在不需要的部分。pickle模塊化序列化(Python)
我想我可以用Python中的元編程來管理這個。但似乎元編程在Python中不夠強大。
這就是我現在所做的。我的圖由幾個不同的對象組成。其中一些是特殊班的實例。這個類描述了被醃製的根對象。這就是模塊化的地方。每當我嘗試從其中一個實例開始的東西時,我就不會同時醃製其中的兩個。每當有一個對根對象可訪問的另一個實例的引用時,我用persistant_id替換這個引用,從而確保我在相同的酸洗流中不會有兩個它們。取消流時會出現問題。我可以找到一個尚未加載的實例的persistant_id。當出現這種情況時,我必須等待目標實例在允許訪問之前被加載。而且我也看不出去那麼做:
1 /我試圖建立一個訪問器,其中得到方法返回參考的目標。不幸的是,訪問者必須放在類聲明中,我不能將它們分配給未被阻止的對象。 2 /我可以存儲需要解析引用的地方。我不認爲這在Python中是可能的:不能保持對某個地方(一個字段或一個變量)的引用,只能對一個值進行引用。
我的問題可能不明確。我仍在尋找一個清晰的表述。我嘗試了其他的東西,比如使用明確的引用,這些引用會是一些「引用」類的實例。雖然這不是很方便。
你有什麼想法如何實現與泡菜模塊序列化?我是否必須改變Unpickler的內部行爲才能記住需要加載剩餘對象圖的地方?是否有另一個圖書館更適合取得類似的成果?
問題是它只要求Specialclass實例可以擁有對其他實例的引用。這不是我的情況。例如,您的對象中不能包含實例列表。 –