Назад к вопросам
Junior — Middle
77
Чем отличаются свойства класса и свойства конкретного объекта в Python?
Компании, где спрашивали
Лига Ставок
Ответ от нейросети
sobes.tech AI
Свойства класса (атрибуты класса) в Python принадлежат самому классу и общие для всех его экземпляров. Они определяются внутри тела класса, но вне методов. Если изменить свойство класса, это изменение будет видно во всех объектах, которые не переопределили это свойство.
Свойства конкретного объекта (атрибуты экземпляра) принадлежат только этому объекту и определяются обычно внутри метода __init__ или динамически. Они уникальны для каждого экземпляра и не влияют на другие объекты класса.
Пример:
class MyClass:
class_attr = 10 # свойство класса
def __init__(self, value):
self.instance_attr = value # свойство объекта
obj1 = MyClass(1)
obj2 = MyClass(2)
print(obj1.class_attr) # 10
print(obj2.class_attr) # 10
print(obj1.instance_attr) # 1
print(obj2.instance_attr) # 2
MyClass.class_attr = 20
print(obj1.class_attr) # 20
print(obj2.class_attr) # 20
obj1.instance_attr = 100
print(obj1.instance_attr) # 100
print(obj2.instance_attr) # 2