Python magic method is defined as the special method which adds "magic" to a class. It starts and ends with double underscores, for example, _init_ or _str_.
The built-in classes define many magic methods. The dir() function can be used to see the number of magic methods inherited by a class. It has two prefixes, and suffix underscores in the method name.
It is most frequently used to define the overloaded behaviors of predefined operators.
The _init_ method is called after the instance of the class has been created but before it returned to the caller. It is invoked without any call, when an instance of the class is created like constructors in other programming languages such as C++, Java, C#, PHP, etc. These methods are also known as initialize and are called after _new_. Its where you should initialize the instance variables.
This function computes "informal" or a nicely printable string representation of an object and must return a string object.
This function is called by the repr() built-in function to compute the "official" string representation of an object and returns a machine-readable representation of a type. The goal of the _repr_ is to be unambiguous.
This function should return the length of an object.
We can make an object callable by adding the _call_ magic method, and it is another method that is not needed quite as often is _call_.
If defined in a class, then that class can be called. But if it was a function, instance itself rather than modifying.
Just as _init_, which is a constructor method, _del_ is like a destructor. If you have opened a file in _init _, then _del_ can close it.
It offers to compute a byte-string representation of an object and should return a string object.
This method gets invoked when >= operator is used and returns True or False.
This function gets called for the unary operator.
This function gets called on the exponents with arguments. e.g. a**=b.
This function gets called on comparison using <= operator.
This function returns the Boolean value of the object. It gets invoked when the bool (self) function is called.