【代碼題】
有一個 字典{‘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}