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
selfnicls(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.