相关疑难解决方法(0)

在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
Run Code Online (Sandbox Code Playgroud)

Derived.do,我该如何打电话Base.do

super如果这是一个普通的对象方法,我通常会直接使用甚至是基类名,但显然我找不到在基类中调用classmethod的方法.

在上面的例子中,Base.do(a)print Base类而不是Derived类.

python overriding class class-method

93
推荐指数
2
解决办法
4万
查看次数

标签 统计

class ×1

class-method ×1

overriding ×1

python ×1