用python从树结构中删除类属性

2024-06-07 03:24:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我为二叉树定义了一个类:

class Tree:
  def __init__(self, list, left=None, right=None, value=None):
    self.left = left
    self.right = right
    self.list = list
    self.value = value

构建树之后,我想删除树的list属性

def cleanTree(Tree):
  if Tree is None:
    return
  if Tree.left:
    cleanTree(Tree.left)
  del Tree.list
  if Tree.right:
    cleanTree(Tree.right)

但它返回的不是类型:

>>> Tree = Tree()
>>> build(Tree)
>>> newTree = cleanTree(Tree)
>>> vars(newTree)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: vars() argument must have __dict__ attribute

Tags: selfrightnonetreeif定义valuedef
1条回答
网友
1楼 · 发布于 2024-06-07 03:24:13

您的cleanTree函数不返回任何内容。 尝试这样做:

def cleanTree(Tree):
  if Tree is None:
    return
  del Tree.list
  if Tree.left:
    cleanTree(Tree.left)
  if Tree.right:
    cleanTree(Tree.right)
  return Tree

相关问题 更多 >