如何在另一个Python类构造函数中实例化Python类?

时间:2018-07-20 20:59:18

标签: python

我有一个名为PowerControl的python类,其中构造函数实例化了另一个名为PowerControlA的类。是否可以以将PowerControl对象视为PowerControlA对象的方式实例化PowerControl?当前,我将PowerControlA实例化为PowerControl的self.A。

编辑:当前,这是PowerControl类的实例。我希望PowerControl对象在实例化并传入参数后充当PowerControlA或PowerControlB。

class PowerControl:

def __init__(self, type="SN"):
    if "SN" in type:
        print("A")
        self.pwr = PowerControlA()
    else:
        print("B")
        self.pwr = PowerControlB()

1 个答案:

答案 0 :(得分:0)

您正在谈论继承与组合。这种关系既可以是“是”关系,也可以是“具有”关系。

如果false继承自PowerControl,则PowerControlA“是” PowerControl。那是继承。

PowerControlA

如果class PowerControl(PowerControlA): # stuff 实例化PowerControl,则self.A = PowerControlA()“有” PowerControl。这就是组成。

PowerControlA

如果没有更好地说明问题,您将很难说出您实际上想使用的哪一个。