有没有办法覆盖python中内置类型的特殊函数?例如,我想创建一个继承自内置 dict 的 SpecialDict 类。我想允许用户为我的特殊字典中的键和值定义自定义验证函数,如下所示:
def __init__(self, keyValidator = True, valueValidator = True):
self.keyValidator = keyValidator
self.valueValidator = valueValidator
使用它,我可以拦截更新方法中添加的值,如下所示:
def update(self,key,value):
assert (self.keyValidator(key))
assert (self.valueValidator(key))
self[key] = value
但是,如果有人决定继续使用 [] 作为访问权限,这将不起作用。或者,如果有人使用字典文字创建对象。
mySpecialDict = SpecialDict
mySpecialDict['hello'] = 54