Ответы пользователя по тегу ООП
  • Когда надо использовать инстанс методы и когда класс методы?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ты не совсем понял их назначение.

    В python у тебя есть атрибуты класса и атрибуты экземпляра класса. Атрибутами называют как методы так и атрибуты в обычном смысле.

    1. Методы экземпляра класса, имеют доступ, и могут изменять, как атрибуты класса, так и атрибуты экземпляра класса.

    2. Методы класса не имеют доступа к атрибутам экземпляра класса, как следствие не могут изменять его состояние.

    3. Статические методы не имеют доступа к атрибутам, экземпляра класса или объекта класса. Обычная функция которая "привязана к классу" для внутренних нужд.

    Если говорить о применении методов класса, то самое основное это создание альтернативного конструктора.

    class MyClass:
    
        def __init__(self, items):
            self.items = items
            initial_total_value = self.total()
    
        def total(self):
            return sum(self.items)
    
        @classmethod
        def from_str(cls, string):
            return cls([int(i) for i in string])
    a = MyClass([1,2,3])
    print(a.total())
    
    b = MyClass.from_str('123')
    print(b.total())
    То есть смотри мой класс метод возвращает изменный объект класса, на котором без проблем сработает конструктор экземпляра класса.
    Ответ написан