【发布时间】:2021-10-13 22:11:14
【问题描述】:
我有一个继承自pandas.DataFrame 的子类,并添加了一些特定于我的实现的新方法。这些方法作用于并返回 self 的修改版本(基本上只是重复已经存在但具有扩展功能的可链接方法的 DataFrame 模式):
class Subclass(pandas.DataFrame):
def new_method(self):
return Subclass(self.transform(...))
当我定义自己的方法时,很容易返回新的Subclass 实例。但是,当我从未覆盖的基类中调用方法时,返回的结果是一个新的 DataFrame, 不是 一个新的子类。因此,一旦我使用基类方法,我的实例就会失去任何新功能。
有没有办法强制基类方法返回子类实例?换句话说,无论在Subclass 实例中使用DataFrame 构造函数的任何位置,都将其替换为Subclass 构造函数?
【问题讨论】: