Sobes.tech
Junior — Middle
103

Koja je razlika između svojstva klase i svojstva pojedinačnog objekta u programskom kodu?

Одговор од АИ

sobes.tech АИ

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

Если изменить свойство класса, это изменение будет видно во всех объектах, которые не переопределили это свойство у себя. Если изменить свойство объекта, это изменение затронет только этот конкретный экземпляр.

Пример:

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

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