Table of contents
Definition
Magic methods, also known as dunder (double underscore) methods, are special methods in Python that begin and end with double underscores (e.g., __init__
, __str__
). They enable the customization of behavior for built-in operations and can make your objects more intuitive to work with.
Use Cases and Examples
Here are some common magic methods in Python and their purposes:
- Initialization:
__init__
is used to initialize an objectβs state. - String Representation:
__str__
and__repr__
define how objects are represented as strings. - Arithmetic Operations: Methods like
__add__
,__sub__
,__mul__
enable custom behavior for arithmetic operations. - Comparison Operations:
__eq__
,__lt__
, and others allow custom comparison logic.
For instance, using __str__
can provide a human-readable representation of an object, making debugging easier.
01: class Person:
02: def __init__(self, name, age):
03: self.name = name
04: self.age = age
05:
06: def __str__(self):
07: return f'{self.name}, {self.age} years old'
08:
09: p = Person('John', 30)
10: print(p) # Output: John, 30 years old
Summary
Magic methods allow developers to define how objects interact with various Python operations seamlessly. This is a powerful feature for making your classes more intuitive and integrated with Pythonβs syntax.
Note: Be careful when using magic methods because they can change Python's default behavior. This might confuse other developers working on the same codebase.
Here is another article you might like π What Is Currying In Programming?