1
我有一個類K()
有一個__add__()
方法,如果我改變了一些數據添加類,防止更改索引從影響數據
d_1['c'] = 'apples'
d_2['c'] = 'oranges'
,並再次檢查該工作原理如下
d_1 = K(dict(a=3, b=5), dict(b=45,c=23))
d_2 = K(dict(a='three',b='two'), dict(b='wa',c='wo'))
>>d = d_1 + d_2
>>d == K({'a': 3, 'b': 5}, {'b': 45, 'c': 23}, {'a': 'three', 'b': 'two'}, {'b': 'wa', 'c': 'wo'})
True
然而...
>>d == K({'a': 3, 'b': 5}, {'b': 45, 'c': 23}, {'a': 'three', 'b': 'two'}, {'b': 'wa', 'c': 'wo'})
False
不斷變化的數據影響了原點l加法。我已經使用.copy()來創建我們增加了變量的副本和使用,無論those-我沒有任何運氣嘗試...
def __add__(self, other):
scopy, ocopy = self.copy(),other.copy()
slist,olist = [],[]
for x in scopy.list_of_dictionaries_from_init:
self_temp.append(x)
for i in other_copy.list_of_dictionaries_from_init:
temp.append(i)
return K(*(self_copy.list_of_dictionaries_from_init + olist))
這只是完全不起作用
我不知道如何使副本