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