Встречается на собеседованиях • сегодня

В чем разница между объявлением переменной в инициализаторе и переменной класса

Объявление переменной в инициализаторе (__init__) создает атрибут экземпляра, который уникален для каждого объекта. Переменная класса объявляется на уровне класса и является общей для всех экземпляров.

Пример:

python
class MyClass:
    class_var = "I'm a class variable"  # Общая для всех экземпляров
    
    def __init__(self, value):
        self.instance_var = value  # Уникальна для каждого экземпляра

obj1 = MyClass(1)
obj2 = MyClass(2)

print(obj1.class_var) # "I'm a class variable"
print(obj2.class_var) # "I'm a class variable"
print(obj1.instance_var) # 1
print(obj2.instance_var) # 2

text

**Ключевые отличия:**  
- Переменные класса доступны через `ClassName.var` или `instance.var`.  
- Изменение переменной класса через экземпляр создаст атрибут экземпляра (`obj1.class_var = "new"` не изменит `class_var` для других объектов).  
- Переменные инициализатора всегда принадлежат конкретному экземпляру.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы