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]

  • Maddier1993@programming.dev
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    13 days 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.