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)
Може ли някой да ми го обясни по задълбочено. Изобщо какъв е смисъла от цялята тази гимнастика, като можеш просто да си извикаш метод който си декларирал в класа?
Благодаря.
Разбира се, че можеш да си дефинираш всички методи, но няма смисъл да го правиш след като някой го е дефинирал вече, пък и се получава нещо като "стандартизация" може би.