2).如果鍵不存在,則新增到字典中。(請使用裝飾器來實現,順便複習下*args和**kwargs的用法)
a =
defselect
(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(data, key, value)
: data[key]
= value
print
(data)
if __name__ ==
"__main__":*
(a,'heihei'
,100))
# 將引數傳遞給args 也就是args = (a,'heihei',100) ,kwargs ={}
'a',value=
100)
# 將引數傳遞給kwargs 也就是args = () ,kwargs =
裝飾器如何裝飾乙個函式
裝飾器如何裝飾乙個函式?今天番茄加速就來講一下。printstar函式接收乙個函式f,返回值也是乙個函式,所以滿足裝飾器的結構要求,所以printstar是乙個裝飾器。def printstar f def g print 20 f print 20 return g printstar裝飾器實現f...
帶函式的裝飾器 多個裝飾器裝飾乙個函式
一 帶引數的裝飾器 開關 author administrator f true defouter f def wap fun ggdef inner args,kwargs iff print inner before ret fun args,kwargs gg print inner afte...
小技巧 裝飾器裝飾乙個遞迴函式
在python中裝飾器可以為原函式新增一些功能。但如果函式本身是遞迴定義的,則不會僅裝飾最外層,而是在每次遞迴的時候都呼叫裝飾器。這樣會導致原函式無法被直觀的裝飾。首先定義乙個裝飾器 隨便定義乙個裝飾器 defmy decorator fun def decorator args,kwargs fu...