Betrachten Sie den folgenden Code:
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
Von Derived.do
, wie rufe ich an Base.do
?
Normalerweise würde ich super
oder sogar den Namen der Basisklasse direkt verwenden, wenn dies eine normale Objektmethode ist, aber anscheinend kann ich keine Möglichkeit finden, die Klassenmethode in der Basisklasse aufzurufen.
Im obigen Beispiel wird eine Klasse anstelle einer Klasse Base.do(a)
gedruckt .Base
Derived