У меня есть класс, который содержит некоторые данные. Оператор + для двух объектов такого класса должен объединить данные обоих объектов и вернуть новый объект. Тем не менее, было бы гораздо лучше, если бы в случае оператора + = добавлялись данные из добавленного объекта и возвращалось само значение. Вот некоторый псевдокод, демонстрирующий, чего я хочу достичь.
class BiGData:
def __init__(self):
self.data=[]
def __add__(self,x):
if (this is just a +):
newData=BigData()
newData.data += self.data
newData.data += x.data
return newData
else: #(this is the += case)
self.data += x.data
return self
Если эти два случая использования функции __add__
можно различить, код на Python будет намного лучше читать и понимать! Учтите это:
x,y=BigData(),BigData()
z = x + y # z is a new object of the BigData class,
# which collects all data from both x and y
# but data in x and y are intacked
x += y # just append data from y to x
# data in x has been changed