次のコンテキストでディープコピーがどのように機能するのか疑問に思っていました:
from copy import deepcopy
def copyExample:
self.myDict = {}
firstPosition = "First"
firstPositionContent = ["first", "primero"]
secondPosition = "Second"
secondPositionContent = ["second"]
self.myDict[firstPosition] = firstPositionContent
self.myDict[secondPosition] = secondPositionContent
return deepcopy(self.myDict)
def addExample(self):
copy = self.copyExample()
copy["Second"].add("segundo")
辞書にあるリストへの参照を返しますか? それとも、期待どおりに動作し、すべてのリストを別の参照で新しいリストにコピーしますか?
ディープ コピーとは何かは知っています (したがって、ディープ コピーとシャロー コピーの違いを説明する必要はありません) が、期待どおりに機能するかどうか疑問に思っているため、使用時にインスタンス変数を変更しませんaddExample()
。