gpt4 book ai didi

python - 在 Python 中使用 deepcopy 引用子对象的位置

转载 作者:太空宇宙 更新时间:2023-11-03 18:52:32 25 4
gpt4 key购买 nike

关于Python中的深度复制的问题:

我有一个类 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.S 中的 A 对象 a 和 B 对象 b ,将使得两个新的 A 对象:一个包含 b 的“伙伴”(位于 a.S 中),一个包含 a.S 的其余部分。

问题是,我不知道如何弄清楚指定的 b 在深层复制中会变成什么。换句话说,

how do I find new_b in the above code?

(注意:在我的实际代码中,按此顺序执行很重要,即添加 new_a 然后将 a 拆分为 leftright 不起作用。)

最佳答案

答案是,指定的 b 不会成为深层复制中除 b 之外的任何内容,因为您根本没有深层复制 b。因此,只需在示例中将 new_b 替换为 b 即可。

关于python - 在 Python 中使用 deepcopy 引用子对象的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18008546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com