Python magic method

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.

__init__

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.

__str__

This function computes "informal" or a nicely printable string representation of an object and must return a string object.

__repr__

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.

__len__

This function should return the length of an object.

__call__

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.

__del__

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.

__bytes__

It offers to compute a byte-string representation of an object and should return a string object.

__ge__

This method gets invoked when >= operator is used and returns True or False.

__neg__

This function gets called for the unary operator.

__ipow__

This function gets called on the exponents with arguments. e.g. a**=b.

__le__

This function gets called on comparison using <= operator.

_nonzero_

This function returns the Boolean value of the object. It gets invoked when the bool (self) function is called.


Next TopicPython Tutorial




Contact US

Email:[email protected]

Python Magic Method
10/30