2011-04-15 96 views
0

好的我有我的霍夫曼类似乎工作正常。然而,当我试图使我的二叉树,我继续得到一个错误消息,说''全球名称编码未定义''当我的函数的名称是编码。有人可以告诉我为什么吗?下面是我的代码。谢谢霍夫曼编码帮助

def get_encoding(self): 
     # Huff is a previously defined function that generates the tree 
     node=self.Huff() 
     dic={} 
     if node.char: 
      if not self: 
       dic[node.char]='0' 
      else: 
       dic[node.char]=self 
     else: 
       encoding(self+'0',node.left) 
       encoding(self+'1',node.right) 

回答

0

您的函数的名称不是encoding,这是get_encoding

+0

这是错字。即使我有了get_encoding,它仍然会给我提供相同的错误消息 – steff 2011-04-15 00:26:05

+0

@steff,这就是为什么cut-n-paste是提问的好方法。 :) – sarnold 2011-04-15 00:27:52

1

它看起来像你试图做一个递归调用get_encoding,但签名不同,因为定义不需要2个参数。您尝试执行self+'0'self+'1'时可能也存在问题。

+0

@ John。感谢您的答复。无论如何,我注意到,我也做了更正,但由于某些未知的原因,它仍然给出了同样的错误信息 – steff 2011-04-15 01:14:10

+0

什么是确切的错误信息? – 2011-04-15 01:18:46

+0

@ Johnthat'全球名称get_encoding未定义' – steff 2011-04-15 02:26:55