Sobes.tech
Junior — Middle

¿Cuál es la finalidad del decorador @staticmethod en Python y en qué se diferencia de los métodos normales de la clase?

sobes.tech AI

Respuesta de la IA

El decorador @staticmethod en Python se utiliza para definir un método dentro de una clase que no depende de una instancia de la clase y no acepta automáticamente el parámetro self.

Diferencias con los métodos normales:

  • Los métodos normales aceptan como primer parámetro self, que es una referencia a la instancia actual de la clase.
  • Los métodos estáticos no aceptan ni self ni cls (una referencia a la clase).

Esto significa que un método estático es simplemente una función relacionada lógicamente con la clase, pero que no utiliza su estado.

Ejemplo:

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

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

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

Los métodos estáticos son útiles para funciones utilitarias que tienen sentido en el contexto de la clase, pero no requieren acceso a sus datos.