确定。我试图通过创建一个子类来扩展数据结构类。用例是程序已经有一个父类的实例,并将其传递给子类的构造函数。换句话说,我有一个父类的实例A,我想将它提供给扩展类构造函数以获取扩展类的实例B.
class child(Parent):
def __init__ (self, dataInstance=None):
super(child, self).__init__(dataInstance)
child.someparentmethod() # YES!
因此,如果Parent类可以在其构造函数中获取自身的实例,这将起作用(实际上我正在处理多个类,其中一些做,有些则没有)。我想要避免的hack-y事件只是将父数据结构作为另一个类的属性传递:
class notChild():
def __init__ (self, dataInstance=None):
self.data = dataInstance
notChild.data.someparentmethod() # yuck.
我在python中对OOP比较陌生,我希望我忽略了一些明显的东西。谢谢!
答案 0 :(得分:0)
确定。这是我使用的解决方案,具体针对实现,我很想知道是否有更通用/ pythonic的方法来实现这一点:
class child(pandas.Panel4D):
def __init__ (self, d=None):
if isinstance(d, pandas.Panel4D):
d = d._data
super(child, self).__init__(d)
else:
super(child, self).__init__(d)
基本上,如果子构造函数被提供给父实例,它将访问它的基础数据,这是父构造函数可以提取的类。