if var1
equals 1
, and you run var2 = var1
, that sets var2
to 1
.
if list1
equals [
, 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 [
]
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.