anytree nodemixin 使用 属性 或引用
anytree nodemixin using property or reference
我有一个现有的树,我想通过添加 NodeMixin 来添加任意树功能。问题是 NodeMixin 需要为其子元素使用固定名称 'children',而我已经有一个具有不同名称的列表。
另一个问题(我正在使用 mypy)是现有的子元素列表不是可选的 - 终端节点有空列表并且 NodeMixin 希望 'None' 作为终端对象的 'children'。
如果我必须重命名对象并处理子项的可选性质,将会产生很多变化。
是否可以将子元素定义为@属性或作为现有子元素的引用?
(a) 可以使用 parent 和 children 的属性,(b) 很容易为 children 编写自定义可迭代的 class 来说明任何树和我的树迭代之间的差异。
更新:is_leaf 属性 也必须被覆盖 - 否则它对每个节点都是正确的。
我有一个现有的树,我想通过添加 NodeMixin 来添加任意树功能。问题是 NodeMixin 需要为其子元素使用固定名称 'children',而我已经有一个具有不同名称的列表。
另一个问题(我正在使用 mypy)是现有的子元素列表不是可选的 - 终端节点有空列表并且 NodeMixin 希望 'None' 作为终端对象的 'children'。
如果我必须重命名对象并处理子项的可选性质,将会产生很多变化。
是否可以将子元素定义为@属性或作为现有子元素的引用?
(a) 可以使用 parent 和 children 的属性,(b) 很容易为 children 编写自定义可迭代的 class 来说明任何树和我的树迭代之间的差异。
更新:is_leaf 属性 也必须被覆盖 - 否则它对每个节点都是正确的。