Назад к вопросам
Junior — Middle
77
Чем отличаются объявления переменной внутри конструктора и объявлении переменной на уровне класса?
Ответ от нейросети
sobes.tech AI
Объявление переменной внутри конструктора и на уровне класса в Python отличается областью видимости и временем жизни:
-
Переменная на уровне класса — это атрибут класса, общий для всех экземпляров. Она создаётся один раз и доступна через класс и все его объекты.
-
Переменная внутри конструктора (обычно через
self) — это атрибут экземпляра, уникальный для каждого объекта класса.
Пример:
class MyClass:
class_var = 10 # переменная класса
def __init__(self, value):
self.instance_var = value # переменная экземпляра
obj1 = MyClass(5)
obj2 = MyClass(7)
print(obj1.class_var) # 10
print(obj2.class_var) # 10
print(obj1.instance_var) # 5
print(obj2.instance_var) # 7
Таким образом, изменение class_var повлияет на все объекты, а изменение instance_var — только на конкретный экземпляр.