Как в Python правильнее вызывать методы других классов - напрямую или через их экземпляры?
В процессе изучения последнего принципа SOLID в контексте Python (вдруг это важно) наткнулся на пример, в котором вызов метода другого класса можно выполнять как напрямую, так и через создание его экземпляра.
class Line:
def draw(self):
print('line')
class Painter:
def painting(self, class_painter):
class_painter.draw(self)
class Painter2:
def painting(self, class_painter):
class_painter().draw()
p_class_method = Painter()
p_class_method.painting(Line)
p_instance_method = Painter2()
p_instance_method.painting(Line)
Результат будет одинаковый, но не нарушаю ли я при этом какой-нибудь принцип программирования одним из способов? Какие есть подводные камни при таких вызовах? Какой вариант считается правильным в реальных программах? В примере был второй вариант, с созданием экземпляра. Но не считается ли плохой практикой создание новых объектов без необходимости?
Вопрос может и странный, но я только изучаю программирование и не знаком с общепринятыми практиками и подводными камнями в разных вариантах
Источник: Stack Overflow на русском