Considérons le code suivant:
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
D' Derived.do
, comment dois-je appeler Base.do
? Je voudrais l'utiliser normalement super
ou même le nom de classe de base directement si cela est une méthode de l'objet, mais apparemment je ne peux pas trouver un moyen d'appeler la classmethod dans la classe de base. Dans l'exemple ci-dessus, Base.do(a)
tirages Base
classe au lieu d' Derived
classe.