Работал ли с метаклассами (metaclass)
Python
Middle
Без компании
Работал ли с метаклассами (metaclass)
Ответы
Да, работал. Метаклассы в Python — это механизм для управления созданием классов. Они позволяют изменять поведение классов на этапе их создания.
**Пример:**
```
class Meta(type):
def __new__(cls, name, bases, dct):
# Добавляем атрибут к классу
dct['version'] = 1.0
return super().__new__(cls, name, bases, dct)
class MyClass(metaclass=Meta):
pass
print(MyClass.version) # Выведет: 1.0
```
**Где применяются:**
- Валидация или модификация атрибутов класса.
- Регистрация классов (например, в ORM, как в Django).
- Ограничение наследования.
Метаклассы сложны и не всегда нужны — часто можно обойтись декораторами классов или `__init_subclass__`.