Класс в Python "на лету" с помощью type()

Обычно мы создаём классы через class, а ты знал, что можно сделать это вообще без него? Для этого в Python есть функция type(). Она не только показывает тип объекта, но и позволяет создавать классы прямо во время работы программы.

Ты, наверное, уже использовал type() вот так print(type(5)) . Но у неё есть скрытая "магия". Если передать ей три аргумента, она может создать новый класс. Имя класса — это строка, как мы хотим назвать класс. Родительские классы — сюда передаём список классов, от которых будем наследоваться (можно оставить пустым). Атрибуты — словарь, где описаны переменные и методы нового класса.

Допустим, у нас есть задача сделать класс Person, который будет хранить имя человека и выводить приветствие. С type() это можно сделать так как показано на изображении.

Теперь ты, наверное, думаешь  "А зачем вообще это использовать?". Вот несколько примеров: - Если класс нужно собрать "на лету", например, из данных, которые пришли из базы или конфигурации. - Когда нужно создать десятки похожих классов, не дублируя один и тот же код. - Изменение поведения в реальном времени. Например, добавлять в класс разные методы в зависимости от условий.

Класс в Python  "на лету" с помощью type() | Сетка — новая социальная сеть от hh.ru
repost

248

input message

напишите коммент

еще контент автора

еще контент автора

войдите, чтобы увидеть

и подписаться на интересных профи

в приложении больше возможностей

пока в веб-версии есть не всё — мы вовсю работаем над ней

сетка — cоциальная сеть для нетворкинга от hh.ru

пересекайтесь с теми, кто повлияет на ваш профессиональный путь