Python - 继承类方法来操作类属性

时间:2013-04-22 15:00:57

标签: python oop inheritance

我确信这可能是一个简单的解决方案,但无论如何问题是这样的:我有两个类,比如说AB,这两个类都有类似数据帧的属性 - 这些属性是dataframe类的实例,称之为C,它有自己的方法。我想定义一个'类似'的类D,它具有可以对这些属性进行操作的方法(即对AB属性的数据帧进行操作。 / p> 为了清晰起见,

编辑:在下面的内容中,让ab成为来自班级C的数据帧(即实例)。因此,Ca可以使用b的方法。

更明确地说:假设aA的数据框属性,其属性为Series1,...,Seriesn。由于a是数据帧,我可以打电话 a.Series1, a.Series2, ...等访问Series1Series2a的内容。当然aA的属性,所以我实际上是在调用A.a.Series1A.a.Series2等等,a有自己的类C {1}}所以我可以致电A.a.Series1.methodfromclassC()没问题。无论如何。现在假设我想以一致的方式对a.Seriesjb.Seriesj的内容进行转换,这些内容作为类D中的方法实现,A和{ {1}}可以访问。我的想法是,我希望能够像B那样呼叫班级A的成员。我遇到的问题是A.a.Seriesj.transformseries()有自己的方法(继承自类Seriesj)而C不是其中之一。

这可能看起来有点令人费解,但最终我可以将多个调用链接到transformseries()更改数据框属性状态的各种方法:DA.a.Series2.transform1().transform2().transformj() 等,B.b.Seriesj.transform6().transform3()A.a的最终表示形式是我想要的。

1 个答案:

答案 0 :(得分:1)

您是否考虑过“注入”新方法Seriesn?在Python中,您可以像这样动态地向类添加方法:

setattr(MyClass, 'new_method', lambda self: 'return value')

它甚至可以在之前实例化的对象中工作。因此,您可以向Pandas的Series和/或Dataframe类添加自定义方法。