亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么類中名為 nodes 的列表變量采用類的前一個實例的輸出?

為什么類中名為 nodes 的列表變量采用類的前一個實例的輸出?

至尊寶的傳說 2023-05-09 15:32:15
class Node:    def __init__(self, value):        self.data = value        self.next = None        class SinglyLinkedList:    nodes = []        def __init__(self):        self.head = None        self.tail = None        def insertHead(self, value):        node = Node(value)                if(self.head is None):            self.head = node            self.tail = node            return                node.next = self.head        self.head = node            def insertTail(self, value):        node = Node(value)                if(self.tail is None):            self.head = node            self.tail = node            return                self.tail.next = node        self.tail = node        def displayNodes(self):        temp = self.head                while (temp is not None):            self.nodes.append(temp.data)            temp = temp.next                    return self.nodes            ### Object 1obj1 = SinglyLinkedList()obj1.insertHead(8)obj1.insertHead(7)obj1.insertHead(5)obj1.insertTail(30)print(obj1.displayNodes())### Object 2obj2 = SinglyLinkedList()obj2.insertHead(20)obj2.insertHead(10)print(obj2.displayNodes())### Object 3obj3 = SinglyLinkedList()obj3.insertHead(50)obj3.insertHead(22)obj3.insertHead(19)print(obj3.displayNodes())print(obj3.nodes)### Object 4obj4 = SinglyLinkedList()obj4.insertHead(45)obj4.insertHead(40)obj4.insertHead(35)obj4.insertHead(28)print(obj4.displayNodes())輸出python flatten_LL.py[5, 7, 8, 30][5, 7, 8, 30, 10, 20][5, 7, 8, 30, 10, 20, 19, 22, 50][5, 7, 8, 30, 10, 20, 19, 22, 50][5, 7, 8, 30, 10, 20, 19, 22, 50, 28, 35, 40, 45]這是單向鏈表的代碼。我創建了四個實例,并將鏈表值存儲在名為“nodes”的列表變量中。對于每個實例,我都返回該列表變量“節點”。如您所見,從第二個實例的輸出來看,前一個實例的節點顯示仍保持原樣。我想知道為什么會這樣,因為對于每個實例,存儲都是單獨分配給該實例的。
查看完整描述

1 回答

?
四季花海

TA貢獻1811條經驗 獲得超5個贊

因為nodes是(本質上)一個靜態變量。

您可能打算這樣寫:

class?SinglyLinkedList:????
????def?__init__(self):
????????self.nodes?=?[]
????????self.head?=?None
????????self.tail?=?None


查看完整回答
反對 回復 2023-05-09
  • 1 回答
  • 0 關注
  • 131 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號