Junior — Middle
107
Wat is het verschil tussen het declareren van een variabele binnen de constructor en het declareren van een variabele op klasseniveau?
Antwoord van AI
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 — только на конкретный экземпляр.