У нас есть класс
class A: foo = 1 @classmethod def change_foo(cls, value): cls.foo = value
Создаем несколько экземпляров этого класса
a = A() b = A() c = A()
Для всех созданных классов значение foo будет равно 1.
Далее в одном из этих классов меняем значение
a.foo = 2
Теперь при помощи функции change_foo меняем переменную. Менять можно как через класс, так и через объект, результат не меняется.
a.change_foo(3)
b.change_foo(3)
A.change_foo(3)
В итоге имеем, что в классе “b” и “c” значение поменялось на новое(3), а в классе “a” нет(осталось значение 2). Почему это происходит?