Back to questions
Junior — Middle
69
Какое отличие между свойством класса и свойством отдельного объекта внутри программного кода?
Answer from AI
sobes.tech AI
Свойство класса — это атрибут, который принадлежит самому классу и общ для всех его экземпляров. Свойство объекта — это атрибут, принадлежащий конкретному экземпляру класса.
Если изменить свойство класса, это изменение будет видно во всех объектах, которые не переопределили это свойство у себя. Если изменить свойство объекта, это изменение затронет только этот конкретный экземпляр.
Пример:
class MyClass:
class_attr = 10 # свойство класса
obj1 = MyClass()
obj2 = MyClass()
print(obj1.class_attr) # 10
print(obj2.class_attr) # 10
obj1.class_attr = 20 # создаётся свойство объекта obj1
print(obj1.class_attr) # 20 (свойство объекта)
print(obj2.class_attr) # 10 (свойство класса)
print(MyClass.class_attr) # 10
MyClass.class_attr = 30
print(obj2.class_attr) # 30 (обновлённое свойство класса)
print(obj1.class_attr) # 20 (свойство объекта не изменилось)
Таким образом, свойства класса задают общие значения, а свойства объектов — индивидуальные для каждого экземпляра.