Is a class variable is changed, will all objects see the change?


If a class contains a class variable and that class variable is changed in one instance, do all the other instances of the class see the change?


Yes, a class variable is shared by all objects of a class. If it is changed via one object, all of the other objects will see the changed value. The following code example shows a class variable updated by the reference to object1.

class TestClass:
    name = "Joe"

    def __init__(self, id): = id

object1 = TestClass(1)
object2 = TestClass(2)

# (1, 'Joe')

# (2, 'Joe') = "New Name"

# (1, 'New Name')

# (2, 'New Name')

No, they won’t. Or rather, the class variable doesn’t get changed when you change an attribute on an object.
You can change it on the instance or on the class.
And your code has a bug, which is why it seems to support your claim