Python 在合成中调用uu init_uu方法

Python 在合成中调用uu init_uu方法,python,inheritance,composition,Python,Inheritance,Composition,我试图在python中使用composition,但如果我需要另一个类中的\uuuu init\uuu方法,我不确定如何使用它。换言之,我如何通过组合来super(childClass,self)。\uuuu init\uuuu(…) 例如: class Class*(object): …. class ClassA(Class*): def __init__(self, lst, ...): super(ClassA, self).__init__(.

我试图在python中使用composition,但如果我需要另一个类中的
\uuuu init\uuu
方法,我不确定如何使用它。换言之,我如何通过组合来
super(childClass,self)。\uuuu init\uuuu(…)

例如:

class Class*(object): 
    …. 

class ClassA(Class*):  
    def __init__(self, lst, ...):
        super(ClassA, self).__init__(...) 
    def meth1()
    def meth2()

class ClassB(Class*): 
    def __init__(self, name, lst=None, other=None)
        **here I want to use the __init__ method from ClassA**
        self.a = ClassA(..)
    def meth1():
        return self.a.meth1()

我希望这是清楚的。谢谢

在一个组合中,您的
ClassB
只是有一个恰好是
ClassA
的成员,因此,您不直接调用
ClassA
\uuuu init\uuuu
方法,如果需要,只需实例化它

class ClassB(Class*):
    def __init__(self, name, lst=None, other=None):
        self.my_A = ClassA(lst, ...)

在一个组合中,您的
ClassB
只是有一个恰好是
ClassA
的成员,因此,您不直接调用
ClassA
\uuuu init\uuuu
方法,如果需要,您只需实例化它

class ClassB(Class*):
    def __init__(self, name, lst=None, other=None):
        self.my_A = ClassA(lst, ...)

但这毫无意义。B类与A类无关;没有创作或继承。嗨,丹尼尔,谢谢你的编辑。我添加了更多的代码,也许更清晰?请让我知道。这是我第一次使用composition。编辑之后,很明显您已经在
ClassA
上调用了
\uuu init\uuu
。当你说
self.a=ClassA(…)
时,它调用
ClassA
\uuuu init\uuuu
方法。但这没有意义。B类与A类无关;没有创作或继承。嗨,丹尼尔,谢谢你的编辑。我添加了更多的代码,也许更清晰?请让我知道。这是我第一次使用composition。编辑之后,很明显您已经在
ClassA
上调用了
\uuu init\uuu
。当你说
self.a=ClassA(…)
时,这会调用
ClassA
\uuuu init\uuuu
方法。向韦斯特维尔喊叫。:)向韦斯特维尔大声喊叫。:)