考虑下面的代码类方法:调用基类的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
从Derived.do
,我该怎么称呼Base.do
?
如果这是一个普通的对象方法,我通常会直接使用super
甚至直接使用基类名,但显然我找不到调用基类中的classmethod的方法。
在上例中,Base.do(a)
打印Base
类而不是Derived
类。
相关:【如何调用父类的从子类在Python的方法?(HTTP:/ /stackoverflow.com/q/805066/95735) – 2012-01-28 21:47:43