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
|