Junior — Middle
123
Quelle est la différence entre les variables de niveau classe et les variables d'instance en Python?
Entreprises à qui on a demandé
Лига Ставок
Réponse de l'IA
sobes.tech IA
Переменные уровня класса (class variables) объявляются внутри класса, но вне методов, и общие для всех экземпляров этого класса. Они хранятся в пространстве имен класса и доступны через класс и его экземпляры.
Переменные экземпляра (instance variables) создаются внутри методов (обычно в __init__) и принадлежат конкретному объекту. Каждый экземпляр имеет свои собственные значения таких переменных.
Пример:
class MyClass:
class_var = 0 # переменная уровня класса
def __init__(self, value):
self.instance_var = value # переменная экземпляра
obj1 = MyClass(10)
obj2 = MyClass(20)
print(obj1.class_var) # 0
print(obj2.class_var) # 0
print(obj1.instance_var) # 10
print(obj2.instance_var) # 20
MyClass.class_var = 5
print(obj1.class_var) # 5
print(obj2.class_var) # 5
obj1.instance_var = 15
print(obj1.instance_var) # 15
print(obj2.instance_var) # 20
Таким образом, изменение переменной класса отражается на всех экземплярах, если они не переопределили её локально, а переменные экземпляра уникальны для каждого объекта.