python - 更改父级继承的python类的方法
问题描述
我有一个继承自其他两个类的类,所以:
# 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'>)
推荐阅读
- c# - 堆栈帧和其中的数据存储在哪里?
- javascript - 下拉jQuery
- c# - Azure 表存储 - 调用超时/永不从运行在 Azure WebApp (Linux) 上的 .NET 5 WebAPI 返回
- c++ - pcl 超体素聚类:无法可视化体素
- text - word2vec,如何用 SVM 对文本进行分类?
- flutter - 当用户点击后退按钮或滑动以关闭屏幕时,我该如何执行功能?
- python - 带全息视图的弦图:有关添加颜色和标签的问题
- xamarin.forms - 从 URL 加载图像并带有引用标题
- android - Android PlayConsole 警告:基于 Cordova 的应用程序 - 目标 Android API 级别 30
- python - 使用 optuna 对 huggingface 进行超参数搜索失败并出现 wandb 错误