我想为标准python字典创建一个简单的包装器,或者可能是isCorrectEmail(): Promise<boolean> {
return this.isEmailAvailable().then(result => result);
};
类,其中有一个默认值。
我想做的改变很简单:我想在字典中存储由于可能发生变异而无法清除的数据结构,但我在代码中保证我永远不会无论如何都要改变它们。
我的方法是检测字典的密钥是否可以清除,如果是这样,则照常进行。但是,如果密钥不可用,请先将其转换为字符串,然后照常进行。
答案 0 :(得分:2)
您可以继承dict
并覆盖__setitem__
方法:
class CustomDict(dict):
def __setitem__(self, key, value):
try:
hash(key)
except TypeError:
key = str(key)
super(CustomDict, self).__setitem__(key, value)
def __getitem__(self, key):
try:
hash(key)
except TypeError:
key = str(key)
return super(CustomDict, self).__getitem__(key)
data = CustomDict()
data["x"] = True
data[dict(foo='bar')] = False
print(data)
>>> {'x': True, "{'foo': 'bar'}": False}
assert data[dict(foo='bar')] == False
或者您可以按照here所述创建自定义类似dict的对象。