树中的Python节点意外重复

问题描述

我在树中的节点的最小工作示例如下:

from __future__ import annotations
from dataclasses import dataclass,field
from typing import List
from copy import copy,deepcopy

@dataclass
class Node:
    parent: Node = None
    children: List[Node] = field(default_factory=list)

root = Node()
for ID in range(10):
    root.children.append(Node(parent=copy(root)))
    assert id(root.children[-1].parent) == id(root)

我想在这里详细说明浅表复制,因为节点的子节点可以遍历其父节点而不是父节点是很重要的。但是,似乎这里有副本,并且断言失败。为什么会这样?如何安全地编写这样的树结构?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...