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

时间:2018-10-31 09:16:59

标签: 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)

但是它返回NoneType:

>>> 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

1 个答案:

答案 0 :(得分:1)

您的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