@staticmethod используется для определения статических методов в классе. 
  Статический метод не принимает неявный первый аргумент (self или cls). 
  Он вызывается непосредственно из класса, а не из экземпляра класса.
  
class MyClass:
    @staticmethod
    def my_static_method(arg1, arg2):
        return arg1 + arg2
result = MyClass.my_static_method(5, 3) # Calling directly on the class
print(result) # Output: 8
  Для добавления статического метода в класс в Python используется декоратор @staticmethod. Статические методы отличаются от обычных методов экземпляра (instance methods) и методов класса (class methods) тем, что они не получают ни экземпляр класса (self), ни сам класс (cls) в качестве первого аргумента.  Они ведут себя как обычные функции, определенные внутри класса, но логически связаны с классом.
Как использовать @staticmethod:
self или cls в качестве первого аргумента.@staticmethod.Пример:
class MyClass:
    def __init__(self, value):
      self.value = value
    @staticmethod
    def add(x, y):
      return x + y
    def instance_method(self):
      return self.value * 2
Как вызвать статический метод:
Статический метод можно вызвать как через имя класса, так и через экземпляр класса, но рекомендуется вызывать через имя класса, чтобы подчеркнуть его статическую природу. Вызов статического метода не требует создания экземпляра класса.
# Вызов через класс
  result = MyClass.add(5, 3)
  print(result)  # Output: 8
  # Вызов через экземпляр (не рекомендуется, но допустимо)
  instance = MyClass(10)
  result = instance.add(5, 3)
  print(result)  # Output: 8
  print(instance.instance_method()) # Output: 20 (обычный метод экземпляра)
Когда использовать @staticmethod:
В отличие от методов экземпляра:
Методы экземпляра (обычные методы) автоматически получают доступ к экземпляру класса через аргумент self, что позволяет им изменять состояние экземпляра и вызывать другие методы экземпляра.
class Example:
    def __init__(self, value):
      self.value = value
    def increment(self, amount):
      self.value += amount  # Изменение состояния экземпляра
      return self.value
  obj = Example(5)
  print(obj.increment(3)) # Output: 8