2017-04-19 154 views
-4

在Python執業** kwargs想法,我寫了下面的功能:Python 3 - ** kwargs值無法修改?

def my_dictionary(**kwargs): 
    for i in kwargs.values(): 
     i += 2 
    return kwargs 

print(my_dictionary(a=1,b=2)) 

我得到以下輸出:

{'b': 2, 'a': 1} 

爲什麼沒有在kwargs值發生變化,按指示(i += 2 )?

+0

這與'** kwargs'無關,真的。你會看到與任何字典*相同的行爲。 –

+1

@MartijnPieters哦,好吧......每個人都會時不時問啞巴問題。 – ROBlackSnail

回答

2

您只是在您的示例中對變量i進行了修改。你需要影響kwargs,如下:

def my_dictionary(**kwargs): 
    for k in kwargs.keys(): 
     kwargs[k] += 2 
    return kwargs 
+0

是的,工作。出於某種原因,不能接受另外10分鐘的答案。 – ROBlackSnail