我有一个类继承自其他两个类,因此:
# 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 实际上继承 C 而不是 B,而不需要破解原始文件 (library_file.py
)。有什么办法可以解决这个问题吗?
最佳答案
自 B
定义于 foo
而不是与Base
在同一个文件中,您可以修补foo.B
与 bar.C
导入之前先 Base
:
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'>)
关于python - 更改父级继承的python类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61500606/