Sobes.tech
Назад к вопросам
Junior — Middle
78

В чем различия между статическим методом класса и обычным методом объекта?

Ответ от нейросети

sobes.tech AI

Статический метод класса в Python — это метод, который не принимает автоматически ни экземпляр класса (self), ни сам класс (cls) в качестве первого аргумента. Он определяется с помощью декоратора @staticmethod. Такой метод не зависит от состояния конкретного объекта или класса и обычно используется для функций, логически связанных с классом, но не требующих доступа к его данным.

Обычный метод объекта принимает первым аргументом self — ссылку на текущий экземпляр класса. Через self метод может обращаться к атрибутам и другим методам объекта.

Пример:

class MyClass:
    @staticmethod
    def static_method(x, y):
        return x + y

    def instance_method(self, x):
        return x * 2

obj = MyClass()
print(MyClass.static_method(3, 4))  # 7
print(obj.instance_method(5))       # 10

Итого:

  • Статический метод не имеет доступа к self или cls.
  • Обычный метод работает с конкретным экземпляром через self.
  • Статические методы используются для утилитарных функций внутри класса.