Classmethod
Decorador @classmethod
Section titled “Decorador @classmethod”@classmethod permite crear funciones que pueden acceder o modificar el estado de la clase, sin necesidad de crear un objeto.
Ejemplo
Section titled “Ejemplo”class Persona:poblacion = 0 # Atributo de clase
def __init__(self, nombre):self.nombre = nombrePersona.poblacion += 1
@classmethoddef cuantos_hay(cls):return f"Hay (cls.poblacion) personas registradas."
# Podemos llamar al método sin crear objetos:print(Persona.cuantos_hay()) # Hay 0 personas registradas.
# Crear algunos objetos:p1 = Persona("Ana")p2 = Persona("Luis")
# Llamar de nuevo:print(Persona.cuantos_hay()) # Hay 2 personas registradas.Diferencias entre tipos de métodos
Section titled “Diferencias entre tipos de métodos”En resumen
Section titled “En resumen”- @staticmethod: método independiente, solo usa los parámetros que se le pasen.
- @classmethod: método ligado a la clase, puede usar o modificar atributos de la clase y se puede llamar sin crear una instancia.