How to overload predefined operators

Common operator overloading methods

The following table has a list of methods(operators) we can overload.

Method Overloads Called for
__init__ Constructor Object creation: X = Class( )
__del__ Destructor Object reclamation
__add__ Operator + X + Y, X += Y
__or__ Operator | (bitwise OR)X | Y, X |= Y
__repr__,__str__ Printing, conversions print X, repr(X), str(X)
__call__ Function calls X( )
__getattr__ QualificationX.undefined
__setattr__ Attribute assignment X.any = value
__getitem__ IndexingX[key], for loops and other iterations if no _ _iter_ _
__setitem__ Index assignment X[key] = value
__len__ Length len(X), truth tests
__cmp__ Comparison X == Y, X < Y
__lt__ Specific comparison X < Y (or else __cmp__)
__eq__ Specific comparison X == Y (or else __cmp__)
__radd__ Right-side operator + Noninstance + X
__iadd__ In-place addition X += Y (or else __add__)
__iter__ Iteration contextsfor loops, in tests, list comprehensions, map, others




















Home »
  Python »
    Language Basics »




Python Basics
Operator
Statements
Function Definition
Class
Buildin Functions
Buildin Modules