有一个 字典{'a':1,'b':2,'c':3},现在有一个这个需求: 1).向字典中添加新的键值对,如果字典中的键,已经存在,则取消添加,打印提示:键已经存在。 2).如果键不存在,则添加到字典中。(请使用装饰器来实现,顺便复习下*args和**kwargs的用法)
回答
Bravian回答
def dict_check(func):
def wrapper(*args, **kwargs):
dict_obj: dict = args[0]
key = args[1]
if key in dict_obj.keys():
print("键已经存在")
else:
return func(*args, **kwargs)
return wrapper
class MyDict(dict):
@dict_check
def add(self, key, value):
self[key] = value
d1 = MyDict({'a': 1, 'b': 2, 'c': 3})
d1.add("a", 4)
print(d1)
d1.add("d", 4)
print(d1)
(0)