我有一个名为PowerControl的python类,其中的构造函数实例化了另一个名为PowerControlA的类。是否有可能以这样的方式实例化PowerControl,使我可以将PowerControl对象视为PowerControlA对象?目前,我正在将PowerControlA实例化为PowerControl的self.A。
EDIT:当前是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()
发布于 2018-07-21 05:04:54
你说的是继承还是组合。这要么是一种“是-a”关系,要么是一种“有-a”关系。
如果PowerControl
继承自PowerControlA
,那么PowerControl
"is-a“PowerControlA
。这是继承。
class PowerControl(PowerControlA):
# stuff
如果PowerControl
实例化了self.A = PowerControlA()
,那么PowerControl
“有-a”PowerControlA
。这就是构图。
class PowerControl(object):
def __init__(*args, **kwargs):
self.A = PowerControlA(*args, **kwargs) # maybe
# stuff
如果没有更好地说明问题,你不可能说出你真正想要使用的是哪一个。
https://stackoverflow.com/questions/51450298
复制相似问题