Now it’s time to get familiar with Python core syntax expressions and their corresponding magic methods. The following tables will help you in situations where you'd like to implement a custom method for a Python core operation, as the tables enumerate the most popular operators and functions that own magic method counterparts. Treat it as a list from a universal map, unrelated to any special data type.
Comparison methods
Function or operator | Magic method | Implementation meaning or purpose |
---|---|---|
== | __eq__(self, other) | equality operator |
!= | __ne__(self, other) | inequality operator |
< | __lt__(self, other) | less-than operator |
> | __gt__(self, other) | greater-than operator |
<= | __le__(self, other) | less-than-or-equal-to operator |
>= | __ge__(self, other) | greater-than-or-equal-to operator |
Numeric methods
Unary operators and functions
Function or operator | Magic method | Implementation meaning or purpose |
---|---|---|
+ | __pos__(self) | unary positive, like a = +b |
- | __neg__(self) | unary negative, like a = -b |
abs() | __abs__(self) | behavior for abs() function |
round(a, b) | __round__(self, b) | behavior for round() function |
Common, binary operators and functions
Function or operator | Magic method | Implementation meaning or purpose |
---|---|---|
+ | __add__(self, other) | addition operator |
- | __sub__(self, other) | subtraction operator |
* | __mul__(self, other) | multiplication operator |
// | __floordiv__(self, other) | integer division operator |
/ | __div__(self, other) | division operator |
% | __mod__(self, other) | modulo operator |
** | __pow__(self, other) | exponential (power) operator |
Augumented operators and functions
By augumented assignment we should understand a sequence of unary operators and assignments like a += 20
Function or operator | Magic method | Implementation meaning or purpose |
---|---|---|
+= | __iadd__(self, other) | addition and assignment operator |
-= | __isub__(self, other) | subtraction and assignment operator |
*= | __imul__(self, other) | multiplication and assignment operator |
//= | __ifloordiv__(self, other) | integer division and assignment operator |
/= | __idiv__(self, other) | division and assignment operator |
%= | __imod__(self, other) | modulo and assignment operator |
**= | __ipow__(self, other) | exponential (power) and assignment operator |