Skip to content
This repository was archived by the owner on Feb 25, 2026. It is now read-only.

Latest commit

 

History

History
66 lines (43 loc) · 2.01 KB

File metadata and controls

66 lines (43 loc) · 2.01 KB

Decorador @classmethod

@classmethod permite crear funciones que pueden acceder o modificar el estado de la clase, sin necesidad de crear un objeto.


Temario

Regresar a la Guía Principal


Ejemplo

class Persona:
    poblacion = 0  # Atributo de clase

    def __init__(self, nombre):
        self.nombre = nombre
        Persona.poblacion += 1

    @classmethod
    def 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

Tipo de método Primer parámetro Accede a atributos de instancia Accede a atributos de clase Se llama sin crear objeto
Normal (def) self ✅ Sí ✅ (vía self.__class__) ❌ No
@classmethod cls ❌ No ✅ Sí ✅ Sí
@staticmethod ninguno ❌ No ❌ No ✅ Sí

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.


Regresar a la Guía Principal

Autor: Fravelz