我有 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
有没有更好的方法来做到这一点?