Skip to content

Classmethod

TipoPrimer argAccede aLlamada típica
InstanciaselfObjetop1.saludar()
@classmethodclsEstado de la clasePersona.cuantos_hay()
@staticmethodSolo argsPersona.es_mayor(20)
  • classmethod: ligado a la clase; útil para contadores, factories (cls(...)).
  • staticmethod: función suelta en el namespace de la clase.
class Persona:
poblacion = 0
def __init__(self, nombre):
self.nombre = nombre
Persona.poblacion += 1
@classmethod
def cuantos_hay(cls):
return f"Hay {cls.poblacion} personas"
@staticmethod
def es_mayor(edad):
return edad >= 18
print(Persona.cuantos_hay()) # 0
Persona("Ana")
Persona("Luis")
print(Persona.cuantos_hay()) # 2
print(Persona.es_mayor(20))

Docs: classmethod, staticmethod.