Junior — Middle
120
Kuo skiriasi klasės lygio kintamieji nuo pavyzdžio kintamųjų Python?
Įmonės kur klausė
Лига Ставок
Atsakymas iš AI
sobes.tech AI
Переменные уровня класса (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
Таким образом, изменение переменной класса отражается на всех экземплярах, если они не переопределили её локально, а переменные экземпляра уникальны для каждого объекта.