为什么用x = dict(x,** y)附加词典是不好的?

时间:2016-04-27 01:28:28

标签: python dictionary

反驳in this thread对我毫无意义。有人可以分解吗?做类比?为什么这是一个"滥用黑客"?

1 个答案:

答案 0 :(得分:3)

dict(x, **foo)

...给定foo = { 'hello': 'world' },执行以下操作:

dict(x, hello=world)

这是相当简单的 - 但是,kwargs行为只能很好地定义实际上可以作为关键字参数传递给(所有可用版本的)Python的键。考虑类似的事情:

foo = { ('some', 'tuple'): 'value' }

...在这种情况下,你有一个实际上不能作为关键字参数传递的密钥;传递**foo将是一种行为行为,这种行为并非直观地定义给读者,而某些版本的Python(如Python 3)将明确拒绝。

相比之下:

x = dict(x) # create a new object
x.update(y)

...仅仅依赖于明确定义的行为,并且可以继续使用。