Augmented Assignment

Overloading Example

 import md5
 # An alternative interface for making MD5 signatures
 class MD5:
     def __init__(self):
          self.sig = md5.new()
     def __str__(self):
          return self.sig.digest()
     def __iadd__(self,other):
          self.sig.update(other)
          return self
 
 >>> import sig
 >>> m = sig.MD5()
 >>> m += "Hello"
 >>> m += "World"
 >>> str(m)
 'h\341\011\360\364\014\247*\025\340\\\302'\206\370\346' 
 >>> m += "Python"
 >>> str(m)
 '&\321\025;4m\254\216\223\375\030\333\264\263;\250'
<<< O'Reilly OSCON 2001, New Features in Python 2, Slide 10
July 26, 2001, beazley@cs.uchicago.edu
>>>