this post was submitted on 02 Aug 2025
10 points (91.7% liked)

Python

7340 readers
45 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
 

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
[–] marcos@lemmy.world 3 points 12 hours ago (1 children)

Every variable in Python is actually a reference (maybe optimized out, but still logically a reference). There's no difference.

Numbers, booleans, and None won't give you that kind of problem only because you can't change them.

[–] nickwitha_k@lemmy.sdf.org 1 points 6 hours ago (1 children)

True. Since it's all interpreted, it doesn't act like primitives in things like C and everything is an object, that is a ref of some sort. However, there is a difference between how Python "primitives" and Python collections work within the language syntax.

[–] marcos@lemmy.world 1 points 3 hours ago

Now I'm curious what differences you are talking about, because I'm no Python expert, but I can't think of any. If you mean identity representation, no, it's not different:

>>> a = 65535
>>> b = 65535
>>> a is b
False