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