【发布时间】:2017-02-22 10:37:55
【问题描述】:
我定义了一个继承自另一个类的子类NewDataStructure。作用于对象本身的方法适用于这个子类。但是,创建副本的方法返回父类的对象,而不是子类。当我在其他方法中调用该方法时,这会导致很多问题。
有没有办法明确指示父类的命名方法应该返回子类的对象?
有没有办法指示所有继承的方法都应该返回子类的对象,而不是父类?
也许我可以将返回的对象传递给我班级的__init__ 函数?我需要相应地修改我的__init__... Pythonic 方式是什么?
import pandas as pd
class NewDataStructure(pd.DataFrame):
def __init__(self, data, index, title):
super(NewDataStructure, self).__init__(data=data, index=index)
self.title = title
new_data_variable = NewDataStructure(data=None, index=None, title="")
changed = new_data_variable.unstack()
new_data_variable.reset_index(inplace=True)
unchanged = new_data_variable
print type(changed)
print type(unchanged)
<class 'pandas.core.series.Series'>
<class '__main__.NewDataStructure'>
【问题讨论】:
标签: python inheritance copy-constructor