我写了以下代码:
class node:
def __init__(self, title, series, parent):
self.series = series
self.title = title
self.checklist = []
if(parent != None):
self.checklist = parent.checklist
self.checklist.append(self)
当我创建这样的对象时:
a = node("", s, None)
b = node("", s, a)
print a.checklist
意外地,它将a和b对象都显示为print语句的输出。 我对Python还不熟悉。所以,可能有一些愚蠢的错误。你知道吗
谢谢你。你知道吗
小心切片符号[:] 这将复制列表,但如果列表包含其他列表,则这些列表本身将通过引用复制,而不是作为新对象。你知道吗
例如:
您可能对使用id(y)查看对象y的内存地址感兴趣
您需要
self.checklist = parent.checklist
,这意味着两个实例共享同一个列表。它们都将自己添加到它中,所以当您打印它时,您可以看到这两个实例。你知道吗也许你想复印一份家长名单?
self.checklist = parent.checklist[:]
相关问题 更多 >
编程相关推荐