Sobes.tech
Junior — Middle

¿En qué se diferencia el uso de un método estático de un método de clase en Python?

sobes.tech AI

Respuesta de la IA

Un método estático en Python es un método que no recibe automáticamente ni una instancia de la clase (self) ni la clase misma (cls) como primer argumento. Se declara con el decorador @staticmethod y se comporta como una función normal, pero lógicamente pertenece a la clase.

Un método de clase se declara con el decorador @classmethod y recibe la clase (cls) como primer argumento. Esto permite que el método trabaje con la propia clase, por ejemplo, creando nuevas instancias o modificando propiedades de la clase.

Ejemplo:

class MyClass:
    @staticmethod
    def static_method():
        print("Este es un método estático")

    @classmethod
    def class_method(cls):
        print(f"Este es un método de clase, llamado para {cls}")

MyClass.static_method()  # Imprimirá: Este es un método estático
MyClass.class_method()   # Imprimirá: Este es un método de clase, llamado para <class '__main__.MyClass'>

Por lo tanto, usa un método estático cuando la función no depende del estado de la clase o de sus instancias, y un método de clase cuando necesitas trabajar con la propia clase.