我们可以通过继承2类来覆盖方法

时间:2012-12-20 10:41:55

标签: python

class A(object):

    def print_some(self):
        print 'a'

class B(object):

    def print_some(self):
        print 'b'

class C(A, B):
    pass

c = C()
print c.print_some()
'a'

我对输出的期望是'b'。我想这样做的原因是因为我想覆盖一些方法,让我们在django中从form_validCreateView,只需继承我写的包含自定义form_valid的类,或者有更好的方法?

2 个答案:

答案 0 :(得分:4)

Aclass C(A, B)指令中的第一个(左),因此您从中获取print_some方法(A类)。阅读here

答案 1 :(得分:0)

从你的问题我希望你可以改变B和C的继承,不是吗?那么为什么不建立像

这样的继承
A <- B <- C

或代码:

class A(object):
    ....

class B(A):
    ...

class C(B):
    ...

这应该可以提供所需的输出。