Sobes.tech
Назад к вопросам
Junior — Middle
70

Какое отличие между свойством класса и свойством отдельного объекта внутри программного кода?

Ответ от нейросети

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 (свойство объекта не изменилось)

Таким образом, свойства класса задают общие значения, а свойства объектов — индивидуальные для каждого экземпляра.