Почему изменяется атрибут объекта, а не класса
class Simple:
number = 0
def change(self):
Simple.number += 1
d = Simple()
d.change()
print(d.number) #Выведет 1
Вот не могу понять - почему у объекта изменился атрибут, хотя я писал, что он должен меняться у класса Simple? Я новичок в ООП.
Ответы (1 шт):
Автор решения: n1tr0xs
→ Ссылка
Все дело в том, что для всех объектов этого класса, которые вы создадите, переменная number одна и та же.
При обращении к переменным если интерпретатор не обнаружит "объектную" переменную, т.е. self.number, то он попробует найти переменную с именем number как классовую.