Considere el siguiente código:Calling classmethod de una clase base en Python
class Base(object):
@classmethod
def do(cls, a):
print cls, a
class Derived(Base):
@classmethod
def do(cls, a):
print 'In derived!'
# Base.do(cls, a) -- can't pass `cls`
Base.do(a)
if __name__ == '__main__':
d = Derived()
d.do('hello')
> $ python play.py
> In derived!
> <class '__main__.Base'> msg
De Derived.do
, Como llamar en Base.do
?
Normalmente utilizaría super
o incluso el nombre de la clase base directamente si este es un método de objeto normal, pero aparentemente no puedo encontrar la manera de llamar al método de clase en la clase base.
En el ejemplo anterior, Base.do(a)
imprime Base
clase en lugar de Derived
clase.
relacionadas: [Cómo llamar el método de una clase padre de la clase infantil en Python?] (Http://stackoverflow.com/q/805066/95735) –