Как в Python правильнее вызывать методы других классов - напрямую или через их экземпляры?

Рейтинг: 0Ответов: 0Опубликовано: 11.01.2023

В процессе изучения последнего принципа 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)

Результат будет одинаковый, но не нарушаю ли я при этом какой-нибудь принцип программирования одним из способов? Какие есть подводные камни при таких вызовах? Какой вариант считается правильным в реальных программах? В примере был второй вариант, с созданием экземпляра. Но не считается ли плохой практикой создание новых объектов без необходимости?

Вопрос может и странный, но я только изучаю программирование и не знаком с общепринятыми практиками и подводными камнями в разных вариантах

Ответы

Ответов пока нет.