python - Python 2.7 继承 - 我可以在不更改子代码的情况下包装被覆盖的方法吗?
问题描述
我有以下代码类:
Class Parent:
def func(self):
pass
Class ChildA(Parent):
def func(self):
<ChildA Func Implementation>
Class ChildA(Parent):
def func(self):
<ChildB Func Implementation>
有没有办法“包装”“func”的每个实现,使其行为如下:
def func(self):
with send_metrics:
<ChildA Func Implementation>
不更改任何子类代码?
我已经研究过为父类创建一个描述符,但为了让它工作,我需要更改每个子类以也使用这个描述符。我试图避免它,因为可能有大量的子类。- 我看到在 Python 3.7 中可以做类似的事情,但我正在使用 2.7
我会注意到我不能改变实际的接口,意思是——第 3 方调度程序调用“func”,我不能让它调用不同的方法。
提前致谢!
解决方案
推荐阅读
- python - 当我关闭程序然后重新运行它时,如何将文件信息存储到我的地图中?
- javascript - 根据另一个属性更改对象js中的属性
- javascript - 尝试制作一副纸牌
- python - 如何在 tweepy 中显示推文的全文?
- javascript - 即使数字等于最接近的 2,如何将数字四舍五入为 2
- python - 使用树莓派和 python 发送具有特定频率的超声波数字信号
- java - IntelliJ 插件 - 如何自动生成代码片段 [Java]
- react-native - React Native - Axios - Google 身份刷新令牌 401 错误
- c - 在不更改值的情况下修复内存泄漏
- ruby-on-rails - 使用 ngrok 的条带 webhook 没有答案