0
在現有的Python代碼中,我有一個基類CfgParam
,它由子類層次結構擴展,如PersistentCfgParam(CfgParam)
,EncryptedCfgParam(CfgParam)
等。每個子類都有自己的save()
方法,而基類沒有:通過修改超類來影響子類中的方法?
class CfgParam:
def __init__(self, key, value):
...
class EncryptedCfgParam(CfgParam):
...
def save(self):
...
我需要提供可能性作出任何小類只讀的。我很樂意可選readonly
初始化參數添加到基類,如果這會工作:
class CfgParam:
def __init__(self, key, value, readonly=False):
self.readonly = readonly
...
def save(self):
if self.readonly:
return # And possibly complain
# Now, call save() of the subclass???
但是很顯然在爲「子類的調用方法」沒有這樣的事了,反正會子請撥打自己的save()
,而不是其中的一位。
有沒有辦法避免修改save()
方法每個的子類?