> Как реализуются атрибуты в классах Python (Python)
Уровень: senior · Роль: backend · Язык: Python · Категория: Технические вопросы
Компании: CoMagic, TradingView
Стек: Python
> Пример ответа
В Python атрибуты классов реализуются через пространства имён (словари __dict__) и механизм поиска по цепочке MRO (Method Resolution Order). Атрибуты бывают двух типов: атрибуты класса (class attributes) и атрибуты экземпляра (instance attributes).
Атрибуты класса определяются непосредственно в теле класса и хранятся в ClassName.__dict__. Они общие для всех экземпляров:
PYTHONclass Car:wheels = 4 # атрибут класса
Атрибуты экземпляра создаются через self в методах (обычно в __init__) и хранятся в instance.__dict__:
PYTHONclass Car:def __init__(self, color):self.color = color # атрибут экземпляра
Механизм доступа: при обращении obj.attr Python сначала ищет атрибут в obj.__dict__, затем в type(obj).__dict__, и далее по цепочке базовых классов (MRO). Это позволяет переопределять атрибуты класса на уровне экземпляра.
Динамическое управление: атрибуты можно добавлять, изменять и удалять в рантайме через setattr(), getattr(), delattr() или напрямую через __dict__. Для контроля доступа используются дескрипторы (property, __getattr__, __setattr__, __getattribute__).
Слоты (slots) - механизм оптимизации, фиксирующий набор атрибутов и заменяющий __dict__ на кортеж дескрипторов, что экономит память и ускоряет доступ.
> Похожие задачи по Python
Что такое git flow
Что происходит внутри dict при добавлении нового элемента
В чем разница между обычным классом Python, dataclass и Pydantic
Какие операции выигрывают от B-tree индекса, а какие нет
> Похожие задачи по backend
Как тестировать миграции базы данных?
Что происходит внутри dict при добавлении нового элемента
В чем разница между обычным классом Python, dataclass и Pydantic
Какие операции выигрывают от B-tree индекса, а какие нет
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью