更改父级继承的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'>)
(,)
演示: