我正在学习 Python 的递归。我定义了一个链表,其中每个节点都有项目和下一个。我想写一个递归来把奇数和偶数放在一个单独的集合中。
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\Wing IDE 101 4.1\src\debug\tserver_sandbox.py”,第 19 行,odd_or_even builtins.UnboundLocalError: local variable 'odd_num' referenced before assignment
我应该在哪里初始化奇数,偶数,这样它就不会被覆盖?
谢谢。