如何複製複雜對象以便我可以向其中添加新成員?當我嘗試使用deepcopy的,它失敗「TypeError: cannot serialize
......」爲什麼在複製複雜對象時deepcopy失敗
原來的問題是,我想一些成員變量添加到現有的對象,但不能因爲這樣做的結果「AttributeError: Object is fixed
」
所以這個想法是創建一個新的類與添加成員的原始對象的完整副本。
orig_obj = SomeSqlObject.get_root() # contents unclear, complex
class orig_expanded():
def __init__(self, replicable_object):
self.__dict__ = copy.deepcopy(replicable_object.__dict__)
self.added_member1 = None
self.added_list = []
expanded_thing = orig_expanded(orig_obj)
,但我得到:
TypeError: cannot serialize '_io.TextIOWrapper' object
跟帖回答進行評論, 「什麼是SomeSqlObject?」 也許我的名字是錯誤的......實際名稱混淆爲公司。這是返回表示樹的根部(某種)即樹被定義
class SomeSqlObject(ParentRegisterSet):
"""
Implements the functionality of the Device "root" Register Set.
"""
def __init__(self, db, v1, dg, ui):
self.__db__ = db
self.__dg__ = dg
self.__ui__ = ui
SomeSqlObject.__init__(self, v1, None)
# note: this class is now locked
是什麼'SomeSqlObject.get_root()'返回(通常情況下,你如果要創建這些對象自己......聽起來是不是一種選擇,在這裏...子類)? –
我的名字可能會誤導......試圖混淆公司代碼......然而,這裏是我稱之爲SomeSqlObject類結構:類SomeSqlObject(ParentRegisterSet): 「」」 實現了設備的功能‘根’寄存器組 「」」 高清__init __(自我,DB,V1,DG,UI): 自.__ db__ = DB 自.__ dg__ = DG 自.__ ui__ = UI SomeSqlObject .__的init __(自我,V1,沒有) #注意:這個類現在被鎖定了 –
好吧,這是一個失敗...也許我必須用不同的方法來回答這個問題.... –