Operator Overloading

Operators and Special Methods

  • All operators are mapped to special class methods.
  • You are free to implement these

Example: Make a class behave like a list

     class A:
         def __getitem__(self,index):         # x = obj[n] 
             ...
         def __setitem__(self,index,val):     # obj[n] = val
             ...
         def __delitem__(self,index):         # del obj[n]
             ...
         def __len__(self):                   # len(obj)
             ...
         def __getslice__(self,i,j):          # x = obj[i:j]
             ...
         def __setslice__(self,i,j,val):      # obj[i:j] = val
             ...
         def __delslice__(self,i,j):          # del obj[i:j]
             ...
  • Consult a reference for gory details
<<< O'Reilly OSCON 2000, Introduction to Python, Slide 100
July 17, 2000, beazley@cs.uchicago.edu
>>>