我尝试将字典作为参数传递,并看到两种方法,如下所示,是什么使它在传递**时保持字典值不变
def dict_test1(**d):
d['a'] = '10'
def dict_test2(d):
d['a'] = '10'
d = {'a': '1'}
dict_test1(**d)
print d
dict_test2(d)
print d
输出:
{'a': '1'}
{'a': '10'}
发布于 2018-06-14 05:29:46
简单地说,(**d)
创建了一个新的dict
,而(d)
保留了对旧的引用:
def dict_test1(**d):
print d is d_global # False
def dict_test2(d):
print d is d_global # True
d_global = {'a': '1'}
dict_test1(**d_global )
dict_test2(d_global)
https://stackoverflow.com/questions/50846487
复制相似问题