А вы знали, что в Python классы можно создавать не только через ключевое слово
class?Это возможно благодаря встроенной функции
type() — с помощью нее можно динамически формировать структуру класса прямо во время выполнения кода.Рассмотрим пример:
MyClass = type('MyClass', (), {'x': 10})
obj = MyClass()
print(obj.x) # → 10Здесь мы создаём новый класс MyClass с атрибутом x, без использования class.
Функция
type() в этом виде принимает три аргумента: имя класса — 'MyClass', кортеж базовых классов — (), словарь атрибутов и методов — {'x': 10}.На выходе — полноценный класс, эквивалентный обычному.
Такой подход позволяет создавать и настраивать классы в рантайме — это полезно, если нужно:
▶️ сформировать структуру объекта из JSON или схемы
▶️ динамически сгенерировать классы для тестов, моков или CLI-команд
▶️ построить кастомный мини-фреймворк под задачу
Такие приёмы используют и крупные библиотеки вроде Django, SQLAlchemy и Pydantic — но фишка работает и в обычных проектах.
❤ — если было полезно
😎 — если уже знал об этом
tags: #обучение
➡ Python Developer | Чат
