What are python magic methods?
In Python, magic methods are special methods that allow you to define how instances of your class behave when used with certain built-in Python functions or operators. These methods have a double underscore (__) before and after their names; hence they are also known as Dunder Methods.
Here are some examples of commonly used magic methods:
__init__
: Initializes an instance of a class with specified arguments.__str__
: Returns a string representation of the instance.__len__
: Returns the length of the instance.__add__
: Defines behavior for the addition operator (+).- ___sub___: Defines behavior for the subtraction operator (-).
- __mul__: Defines the behavior for the multiplication operator (*).
__eq__
: Defines behavior for the equality operator (==).__lt__
: Defines behavior for the less-than operator (<).- __truediv__: Defines the behavior for floating-point division (/).
- __mod__: Defines the behavior for mod (%).
- __pow__: Defines the behavior for power (a ** b).
- __lshift__: Bit-shift left (<<).
- __rshift__: Bit-shift right (>>).
- __xor__: Exclusive or (^).
- __or__: Or (|).
By implementing these methods, you can customize the behavior of your classes to match your specific requirements. For example, by defining the __add__
method, you can make instances of your class work with the +
operator, allowing you to perform addition with instances of your class in a way that makes sense for your particular use case.