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

标签 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 实际上继承 C 而不是 B,而不需要破解原始文件 (library_file.py)。有什么办法可以解决这个问题吗?

最佳答案

B定义于 foo而不是与Base在同一个文件中,您可以修补foo.Bbar.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'>)

演示:https://repl.it/@blhsing/KindLovingInfo

关于python - 更改父级继承的python类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61500606/

相关文章:

java - 如何在 Java Nashorn 中声明类?

python - 如何编写 5 折交叉验证的代码?

python - `import module` 和 `from package import module` 之间的差异

python - 从 FFProbe STDERR 打印字符串时输出错误

matlab - 如何找到自己的类创建的对象?

c++ - 运行时创建的模板类的调用函数

python - 使用不是符号张量的输入调用的层 keras

Python Instagram API - API 请求失败

python - 在 PyGame、Python 3 上演奏和弦

python - 将两个 Python try/except block 压缩为一个而不改变行为