Back to questions
Junior — Middle
78
Чем отличаются свойства класса и свойства конкретного объекта в Python?
Companies where asked
Лига Ставок
Answer from AI
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