Class 当父类可以';t将自身作为构造函数的参数

Class 当父类可以';t将自身作为构造函数的参数,class,python-2.7,inheritance,constructor,Class,Python 2.7,Inheritance,Constructor,嗯。我试图通过创建一个子类来扩展一个数据结构类。用例是程序已经拥有父类的实例,并将其传递给子类的构造函数。换句话说,我有一个父类a的实例,我想把它输入到一个扩展类构造函数中,得到一个扩展类B的实例 class child(Parent): def __init__ (self, dataInstance=None): super(child, self).__init__(dataInstance) child.someparentmethod() # YES! 因

嗯。我试图通过创建一个子类来扩展一个数据结构类。用例是程序已经拥有父类的实例,并将其传递给子类的构造函数。换句话说,我有一个父类a的实例,我想把它输入到一个扩展类构造函数中,得到一个扩展类B的实例

class child(Parent):
    def __init__ (self, dataInstance=None):
        super(child, self).__init__(dataInstance)

child.someparentmethod() # YES! 
因此,如果父类可以在其构造函数中获取自身的一个实例,这将是可行的(实际上,我正在处理多个类,其中一些可以,一些不可以)。我想避免的hack-y问题是将父数据结构作为另一个类的属性传递:

class notChild():
    def __init__ (self, dataInstance=None):
        self.data = dataInstance

notChild.data.someparentmethod()  # yuck.

我对python中的OOP比较陌生,希望我忽略了一些显而易见的东西。谢谢

好的。这是我使用的解决方案,它是特定于实现的,我很想知道是否有更通用的/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)

本质上,如果子构造函数被馈送一个父实例,它将访问它的底层数据,这是父构造函数可以摄取的一个类。

您想要实现什么?我正在尝试扩展一个数据结构类,以添加我自己的特定功能(只是一些处理时间序列的方法,但实际上并不相关)。我仍然希望能够无缝地访问父类方法。在我的用例中,我已经有父类的实例,但是继承的构造函数不能将自身的实例作为参数。我不想做的是,每当我想要一个子类实例或有一个单独的类将该数据结构存储为属性时,就被迫将数据结构分解为组件部分,以反馈到构造函数中。可能相关信息:父类不是我自己设计的,而是来自Pandas模块,所以我不想直接修改它。我认为这更多的是一个一般的OOP问题,而不是一个具体的实现问题。