Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Magic methods

Small list

Magic methods are special methods that can be implemented, and then be used with standard Python constructions like +, len(..), print(...), etc.

Python constructionsReal thing happening with magic methods
1+2(1).__add__(2)
2 * 3(2).__mul__(3)
len(a)a.__len__()
print(a)print(a.__repr__)  

Full list here: https://docs.python.org/3/reference/datamodel.html#specialnames

Example

from dataclasses import dataclass

@dataclass
class Vector2D:
    """Class for representing a point in 2D."""
    x: float
    y: float

    def __add__(self, other):
        return Vector2D(self.x + other.x, self.y + other.y)

print(Vector2D(2, 3) + Vector2D(10, 40))
Vector2D(x=12, y=43)

There are libraries to manipulate numbers with units, e.g. https://pypi.org/project/Pint/