[Python] @classmethod ed ereditarietà
Pietro Battiston
me a pietrobattiston.it
Ven 4 Gen 2013 15:54:41 CET
Salve a tutti,
ho da poco scoperto "classmethod", e mi stanno parecchio simpatico. Ho
peṛ trovato un piccolo ostacolo riguardo all'ereditarietà. Per i metodi
"normali", posso fare il classico:
class Base(object):
def fai_qualcosa(self):
...
return result
class Derivata(Base):
def fai_qualcosa(self):
primo_passo = Base.fai_qualcosa( self )
...
return result
Ma per i classmethod non trovo qualcosa di ugualmente comodo ed
elegante, nel senso che
class Base(object):
@classmethod
def fai_qualcosa(cls):
...
return result
class Derivata(Base):
@classmethod
def fai_qualcosa(cls):
primo_passo = Base.fai_qualcosa( cls )
...
return result
chiaramente protesta ("Base.fai_qualcosa" prende un solo argomento, che
è per l'appunto sempre "Base"). Quindi l'unica alternativa che mi viene
in mente è dare a "fai_qualcosa" un argomento opzionale "cls_effettiva".
C'è qualcosa di meglio che mi sfugge?
grazie, ciao
Pietro
Maggiori informazioni sulla lista
Python