2017-04-19 59 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