Hi, I am extending a program for a hobby project where potentially huge spss files are read. I would like to add functionality to append files. I thought it would be nice and intuitive to overload + and += for this. The code below is a gross simplification, but I want to get the basics right. Is this the way how operator overloading is usually done?
class Append(object): def __init__(self, file1, file2=None): """ file1 and file2 will actually be of a class of my own, which has a readFile method that is a generator that returns one record at a time """ self.file1 = file1 self.file2 = file2 self.merged = [] def __add__(self): self.file1.extend(self.file2) return self.file1 def __iadd__(self): self.merged.extend(self.file1) return self.merged def writerows(self): rows = self.file1 for row in rows: yield row # overloading '+' file1 = [[1, 2, 3], [4, 5, 6], [6, 6, 6]] file2 = [[1, 2, 3]] app = Append(file1, file2) merged = app.file1 + app.file2 # 'merged' will not actually hold data for line in app.writerows(): print line # overloading '+=' files = [file1, file2] for i, f in enumerate(files): if i == 0: app = Append(f) app.merged = f else: app.merged += f print app.merged Thank you in advance! Regards, Albert-Jan ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ All right, but apart from the sanitation, the medicine, education, wine, public order, irrigation, roads, a fresh water system, and public health, what have the Romans ever done for us? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor