if var1 equals 1, and you run var2 = var1, that sets var2 to 1.

if list1 equals [1, 2, 3], and you run list2 = list1, that sets list2 to list1

so if you then run var1 = 2, var2 will still be 1

but if you run list1 = [3, 2, 1], list2 will give [3, 2, 1]

you are viewing a single comment's thread
view the rest of the comments
[–] 2 points 1 year ago*

which makes sense to me. params is passing the reference to the dict into the function. Whereas, **params is expanding the dict into the scope of the function before calling the first line of the body.

You can update the content of the former in-place, while the latter is just syntactic sugar for variadic function arguments.

  • source
  • parent