大猩猩包的猴子修补应用于超类方法

问题描述

在Python中,我使用Gorilla包来修补图像中显示的类层次结构,该类层次结构属于statsmodels包。

screenshot of class hierarchy

在定义自己的fit函数之前,尝试使用批注statsmodels.base.model.Model修补抽象类@gorilla.patch(statsmodels.base.model.Model)方法fit(self)时遇到问题。如果我这样做了,然后从以下位置致电fitstatsmodels.regression.linear_model.OLS在我调用gorilla.apply时找不到该修补程序,因此未应用。但是,如果我在注释和@gorilla.patch(statsmodels.regression.linear_model.RegressionModel)中都指定了OLS(更接近gorilla.apply的超类),然后从fit调用OLS,则补丁找到成功。

我想修补用户可能调用的任何fit方法,而不考虑已从其调用的具体子类,因此我尝试在抽象的公共超类中修补fit。有没有办法使它适用于这种一般情况?它不是出于测试目的。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)