magic methods
Дълго търсих и не намерих обяснение, какво кара функцията print(f) да извика специалния метод __str__ в долния код? Какво ги свързва?
class Figure:
    def __init__(self, center_x, center_y, color='black'):
        self.center_x = center_x
        self.center_y = center_y
        self.color = color
    def __str__(self):
        return "Figure - center_x={} , center_y={}, color={}".format(
            self.center_x,
            self.center_y,
            self.color
        )
f = Figure(10, 20, 'red')
print(f)
Може ли някой да ми го обясни по задълбочено. Изобщо какъв е смисъла от цялята тази гимнастика, като можеш просто да си извикаш метод който си декларирал в класа?
Благодаря.
Разбира се, че можеш да си дефинираш всички методи, но няма смисъл да го правиш след като някой го е дефинирал вече, пък и се получава нещо като "стандартизация" може би.