Python之前引用的局部变量

2024-05-13 02:09:28 发布

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

我有以下代码:

def popLast(aLinkedList):
    ptr = aLinkedList
    while ptr != None:
        if ptr['next']['next'] == None and ptr['next'] != None:
            del_node = ptr['data']
            ptr['next'] = ptr['next']['next']
        ptr = ptr['next']

    return (del_node,ptr)

当我把

myLinkedList = createList(['a', 'b', 0, [1, 2]])
for i in range(getLength(myLinkedList)):
    (a, myLinkedList) = popLast(myLinkedList)
print(a, end = ", new list: ")
printList(myLinkedList)

它一直给我

UnboundLocalError: local variable 'del_node' referenced before assignment

当我只使用popLast(myLinkedList)时,没有问题。一切正常。我不知道是不是因为我的返回元组是个问题。你知道吗


Tags: and代码nonenodedatareturnifdef
1条回答
网友
1楼 · 发布于 2024-05-13 02:09:28

如果传入一个空列表,则delu节点永远不会初始化。这就是导致错误的原因。要更改此设置,请首先将delu节点初始化为无:

def popLast(aLinkedList):
    ptr = aLinkedList
    del_node = None
    while ptr is not None:
    ...

相关问题 更多 >