Я определил подкласс 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'>