我已经从一个库中对一个大型的主类进行了子类化。我的子类工作得很好,但我现在还想为主类使用的另一个类创建子类。但是,如果不编辑master类来使用我的新子类,我就看不出该怎么做。换句话说,我想表明master的子类中类“abc”的用法应该被“abc”的子类替换这里有一些伪代码来说明我想继承getenginestats但使用子类返回类型的问题。我知道我可以重写一个或两个方法,但是第二个类在整个主类中都使用,所以这不是一个实际的方法
class vehicle(object):
horsepower = 0
def getenginestats():
# returns an enginestats object
stats = EngineStats()
stats.rpm = 1000
return stats
class EngineStats(object):
rpm = 0
class MyEngineStats(EngineStats):
# add battery voltage to stats
voltage = 0
class ElectricCar(vehicle)
batterysize = 0
prius = ElectricCar()
# how do I get ElectricCar.getenginestats into a MyEngineStats object??
mystats = prius.getenginestats
myvoltage = mystats.voltage
比尔
谢谢你的反馈。听起来不可能做到这种“嵌套子类化”? 我认为这对其他库也很有用,因为许多库都有用于结构和枚举的助手类。如果我可以将somebiglibrary子类化,为什么不允许我也将somebiglibrarystatus(enum)子类化到我的子类中呢
很容易工作,但会很好
谢谢
比尔
您需要调用函数
getenginestats()
并修复一些拼写错误:退货:
您需要覆盖randint函数(例如):
退货:
相关问题 更多 >
编程相关推荐