Considere el siguiente código:
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 llamo Base.do
?
Normalmente usarí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 una 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.