【代码题】
有一个 字典{‘a’:1,‘b’:2,‘c’:3},现在有一个这个需求:
1).向字典中添加新的键值对,如果字典中的键,已经存在,则取消添加,打印提示:键已经存在。
2).如果键不存在,则添加到字典中。(请使用装饰器来实现,顺便复习下*args和**kwargs的用法)
a ={ 'a': 1, 'b': 2, 'c': 3}
def select(func):
def inner(*args, **kwargs):
if len(args) == 0:
if kwargs['key'] in kwargs['data']:
print("键存在")
else:
func(**kwargs)
else:
if args[1] in args[0].keys():
print("键存在")
else:
func(*args)
return inner
@select
def append(data, key, value):
data[key] = value
print(data)
if __name__ == "__main__":
append(*(a, 'heihei', 100)) # 将参数传递给args 也就是args = (a,'heihei',100) ,kwargs ={}
append(data = a, key='a',value=100) # 将参数传递给kwargs 也就是args = () ,kwargs ={'data':a,'key':a,value:100}