簡體   English   中英

Python之前引用的局部變量

[英]Local variable referenced before 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:分配前已引用局部變量“ del_node”

當我只使用popLast(myLinkedList) ,沒有問題。 一切正常。 我不知道是否是因為返回的元組是問題。

如果傳入一個空列表,則永遠不會初始化del_node。 這是導致錯誤的原因。 要更改此設置,請首先將del_node初始化為None:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM