关于 Python 中的 deepcopy 的一个问题:
我有一个 A 类,其中包含 B 类中的对象列表,还有一个 C 类,其中包含 A 类中的对象列表。
class A(object):
def __init__(S):
self.S = set(S)
class B(object):
def __init__(buddies):
self.buddies = set(buddies)
class C(object):
def __init__(L):
self.L = set(L)
def SplitA(a,b):
left = deepcopy(a)
left.S -= new_b.buddies
right = A(new_b.buddies)
L |= left
L |= right
所以我希望 C 有一个 Split 函数,给定一个 A 对象a
和一个 B 对象b
in a.S
,它将生成两个新的 A 对象:一个包含b
(在 中a.S
)的“伙伴”,一个包含a.S
.
问题是,我不知道如何弄清楚指定的 b 在 deepcopy 中变成了什么。换句话说,
如何
new_b
在上面的代码中找到?
(注意:在我的实际代码中,按此顺序进行操作很重要,即添加new_a
然后拆分a
为left
并且right
不起作用。)