我有2个类Child
类,它继承自Parent
类
Parent
类有一个名为getIt
的方法,它使用属性param
来计算某个值并将其返回。值可以是None
。当Child
类继承Parent
时,它会覆盖getIt
,这样如果getIt
的返回值为None
,则会将param
更改为某个值肯定会返回None
以外的值。因此,目标是永远不要让Child
类的实例调用getIt
返回None
。这是我如何做到的
class Parent(object):
def __init__(self, some_params):
self.param = some_value
def getIt(self):
val = # use self.param to do some logic
if val == []:
raise RuntimeError("message")
class Child(Parent):
def __init__(self, some_params):
super(Child, self).__init__(some_params)
def getIt(self):
try:
val = super(Child, self).getIt()
except RuntimeError:
self.param = some_other_value # setting self.param to some_other_value will surely make getIt return a non empty list`
val = super(Child, self).getIt()
return val
有没有更好的方法呢?