python - 有没有办法在 Python 的多重继承对象中访问重写的方法?

标签 python multiple-inheritance

我有以下 Python 代码。如何在不更改类定义的情况下让 c 返回 2?或有不同说法。如何访问具有多重继承的对象中的重写方法?

class A(object):
    def foo(self):
        return 1

class B(object):
    def foo(self):
        return 2

class C(A, B):
    def __init__(self):
        A.__init__(self)
        B.__init__(self)

c = C()
c.foo() # Returns 1

最佳答案

在问了这个问题后,我在其他地方得到了答案,所以这里是:

import types
c.foo = types.MethodType(B.foo, c)

关于python - 有没有办法在 Python 的多重继承对象中访问重写的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14335710/

相关文章:

python - 在 Python 中查找字谜

python - 从 Stata 迁移到 Python

python - 如何更改 matplotlib 图上的字体大小

python - 具有不同初始化参数的多重继承的真正解决方案

Python子对象无法访问父属性

python - 从 OrderedDict 和 defaultdict 继承

python - 将列表写入具有某些自定义格式的文件

python - 将线轮廓仪与多处理一起使用

c++ - C++中的多重继承,它看起来像菱形,但实际上不是

java - 哪个接口(interface)的方法在类中实现了