我來自堅實的C/C++背景,所以如果我的問題很愚蠢,請耐心等待。追加到同一個列表
在這裏我有一個聲明來封裝數據的兩個班,
class Node:
Term = ""
TermInfo = []
def __init__(self,S,Info):
self.Term = S
self.TermInfo.append(Info)
class TermInfo:
DocID = 0
Freq = 0
def __init__(self,ID,F):
self.DocID = ID
self.Freq = F
和我試圖操縱他們這樣
Info = TermInfo(ID,0)
node = Node(j,Info)
Dict[j] = node
基本上我試圖構建一個包含節點的字典,由一個字符串「Term」和一個「Terminfo」列表組成,我期待每個節點都有自己的副本。然而,當我連續打了兩次三線
Info = TermInfo(ID,0)
node = Node(j,Info)
Dict[j] = node
Info = TermInfo(ID,0)
node = Node(j,Info)
Dict[j] = node
我很驚訝地看到,「TERMINFO」兩個列表分別指向了同一個內存地址,第二個追加()也改變了第一單那麼,如何確保每個節點都有自己的副本,而不是指向相同的地址?由於