What are MAGIC methods in Python?

In Python, magic methods are the special methods having two prefix and suffix underscores in the method name. It is also called ‘Dunder’ i.e. Double underscores.

Magic method invokes different action internally so that user does not have to perform the task manually.

To see the magic methods for a given object we have to use the dir() function available on python. It uses object as parameters inside it but if no parameter is used then it returns the names in local scope.

Listing Magic Methods Using dir


print(dir(list))

Output of the following program is:

['__add__', '__class__', '__contains__', 
 '__delattr__', '__delitem__', '__dir__', 
 '__doc__', '__eq__', '__format__', 
 '__ge__', '__getattribute__', '__getitem__', 
 '__gt__', '__hash__', '__iadd__', 
 '__imul__', '__init__', '__init_subclass__', 
 '__iter__', '__le__', '__len__', 
 '__lt__', '__mul__', '__ne__', 
 '__new__', '__reduce__', '__reduce_ex__', 
 '__repr__', '__reversed__', '__rmul__', 
 '__setattr__', '__setitem__', '__sizeof__', 
 '__str__', '__subclasshook__', 'append', 
 'clear', 'copy', 'count', 
 'extend', 'index', 'insert', 
 'pop', 'remove', 'reverse', 
 'sort']

All the methods starting with __ (double underscores) and ending with __ (double underscores) in the above program are magic methods in Python. For example: __add__, __init__, __lt__ etc.