Python classmethod()

Il metodo classmethod() restituisce un metodo di classe per la funzione data.

La sintassi del metodo classmethod() è:

classmethod(funzione)

Per i veri Pythoniani puoi usare il decoratore @classmethod per la definizione del classmethod.

La sintassi è:

@classmethod
def func(cls, args...)

Cos'è un metodo di classe?

Un metodo di classe è un metodo che è legato ad una classe piuttosto che al suo oggetto. Non richiede la creazione di un'istanza di classe, come un metodo statico.

La differenza tra un metodo statico e un metodo di classe è che il metodo statico non sa nulla della classe e si occupa solo dei parametri invece il metodo della classe funziona con la classe, poiché il suo parametro è sempre la classe stessa.

Il metodo della classe può essere chiamato sia dalla classe che dal suo oggetto.

class Uomo:
   anni = 25

   def stampaEta(cls):
       print ('La tua età è:', cls.anni)
# creo metodo di classe stampaEta
Uomo.stampaEta = classmethod(Uomo.stampaEta)

Uomo.stampaEta()

Output del codice

La tua età è: 25