Sobes.tech
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