首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >python我们可以通过继承2个类来重写一个方法吗

python我们可以通过继承2个类来重写一个方法吗
EN

Stack Overflow用户
提问于 2012-12-20 18:41:55
回答 2查看 53关注 0票数 0
代码语言:javascript
运行
复制
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中的CreateViewform_valid,简单地通过继承我编写的包含自定义form_valid的类,或者有更好的方法?

EN

回答 2

Stack Overflow用户

发布于 2012-12-20 18:45:01

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

票数 4
EN

Stack Overflow用户

发布于 2012-12-20 20:01:56

从你的问题看,我希望你能改变B和C的继承,不是吗?所以你为什么不像这样建立一个继承

代码语言:javascript
运行
复制
A <- B <- C

或者在代码中:

代码语言:javascript
运行
复制
class A(object):
    ....

class B(A):
    ...

class C(B):
    ...

这将为您提供所需的输出。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13970304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档