Junior — Middle
105
Quelle est la différence entre la déclaration d'une variable dans le constructeur et la déclaration d'une variable au niveau de la classe?
Réponse de l'IA
sobes.tech IA
Объявление переменной внутри конструктора и на уровне класса в 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 — только на конкретный экземпляр.