私は確かな C/C++ のバックグラウンドを持っているので、私の質問がばかげている場合はご容赦ください。
ここには、データをカプセル化するように宣言された 2 つのクラスがあります。
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」のリストで構成されるノードを含む辞書を構築しようとしていましたが、各ノードには独自のコピーがあると予想していました。ただし、3行に2回続けて電話した後
Info = TermInfo(ID,0)
node = Node(j,Info)
Dict[j] = node
Info = TermInfo(ID,0)
node = Node(j,Info)
Dict[j] = node
「TermInfo」の 2 つのリストが同じメモリ アドレスを指していて、2 番目の append() も最初のリストを変更したことに驚きました。では、各ノードが同じメモリ アドレスを指すのではなく、独自のコピーを持っていることを確認するにはどうすればよいでしょうか。住所?ありがとう