更改父级继承的python类的方法

更改父级继承的python类的方法,python,python-3.x,class,Python,Python 3.x,Class,我有一个从其他两个类继承的类,因此: # library_file.py from foo import A, B class Base(A, B): ... …在其他地方,我有一个子类继承自这个基类 # my_file.py from bar import C from library_file import Base class MyClass(Base): ..... 我希望Base在不破坏原始文件(library\u file.py)的情况下实际继承

我有一个从其他两个类继承的类,因此:

# library_file.py

from foo import A, B

class Base(A, B):
      ...
…在其他地方,我有一个子类继承自这个基类

# my_file.py

from bar import C

from library_file import Base

class MyClass(Base):
      .....

我希望Base在不破坏原始文件(
library\u file.py
)的情况下实际继承C而不是B。有没有办法解决这个问题?

因为
B
是在
foo
中定义的,而不是在
Base
的同一个文件中,所以在导入
Base
之前,您可以先用
bar.C
修补
foo.B

from unittest.mock import patch
from bar import C

with patch('foo.B', C):
    from library_file import Base

print(Base.__bases__)
这将产生:

(<class 'foo.A'>, <class 'bar.C'>)
(,)
演示: