12

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
[-] logging_strict@programming.dev 1 points 3 weeks ago

Eww eww eww, I have a good one!

function argument: params vs **params

Assume both are the same Mapping.

The former can update in-place. The later, nope.

If the function is a generic function or one of the overloads. Wait what's that? It's the term used by functools.singledispatch to describe the fallback function when no overload function handles the case.

Anyway

Any param to either singledispatch generic or an overload, Whatever you throw at it, won't be in-place updatable.

[-] Maddier1993@programming.dev 2 points 2 weeks ago* (last edited 2 weeks 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.

this post was submitted on 02 Aug 2025
12 points (92.9% liked)

Python

7406 readers
1 users here now

Welcome to the Python community on the programming.dev Lemmy instance!

📅 Events

PastNovember 2023

October 2023

July 2023

August 2023

September 2023

🐍 Python project:
💓 Python Community:
✨ Python Ecosystem:
🌌 Fediverse
Communities
Projects
Feeds

founded 2 years ago
MODERATORS