我学习Python的递归。我定义了一个链接列表,其中每个节点都有item和next。我想写一个递归来把奇数和偶数放在一个单独的集合中。返回列表的元组递归函数
class LinkNode(object):
"""A node in a linked list."""
def __init__(self, item, next=None):
"""(LinkNode, object, LinkNode) -> NoneType
Initialize this node to store item and next.
"""
self.item = item
self.next = next
def odd_or_even(self):
"""(LinkNode) -> ([object], [object])
Return a pair of lists: (odd number, even number.
"""
if self is None:
return ([], [])
else:
if (self.item % 2 == 1):
odd_num = odd_num.append(self.item)
else:
even_num = even_num.append(self.item)
if self.next is not None:
self.next.odd_or_even()
return (odd_num, even_num)
当我运行它,我得到了以下错误:
文件 “C:\ Program Files文件\永IDE 4.1 101的\ src \调试\ tserver_sandbox.py” 19行,在odd_or_even builtins.UnboundLocalError:分配之前引用局部变量“odd_num”
我应该在哪里初始odd_num,even_num所以它不会被覆盖?
谢谢。
非常感谢!我使用你建议的局部变量测试了代码,它工作正常。 – duckduck 2013-03-04 12:48:40