таким заниматься...
Можно ли генерировать классы? То есть, например, сделать функцию, которая получает какие-то аргументы, описывающие требуемый класс, и возвращала этот класс?
Вроде как метаклассы по этой части
Спасибо, сейчас поищу что-нибудь про них...
Есть несколько способов, простейший разместить class внутри def, тогда при каждом вызове функции будет новый класс создаваться
Паттерн factory
Ну это такое... по возможности в это лучше не лезть А в какой ситуации тебе понадобилось?
Фабрика это про создание инстасов как раз.
Для классов, определённых в других файлах не на Python. Есть папка с файлами, программа будет их открывать, читать и на основе этих данных создавать классы. Чтобы пользователь мог удобнее создавать и редактировать классы, без необходимости менять код.
Звучит как "сделай макакам интерфейс"
Такие вещи обычно делают через си экстеншены
Ну что-то вроде того, наверное, и получится. Типа админы какие-нибудь будут описывать класс в ямле, в принципе почему бы и нет.
все же мне кажется, что пытаются привязать горбатого к стенке
Привязать горбатого к стенке
ну полиглот петрова кстати годная вещь
Алсо, если метаклассы покажутся черной магией, и на самом деле какой-то глубокой кастомизации не предвидится, то можно обойтись какой-нибудь такой хреновиной: class A: pass A.func = lambda self,x: f"I am {x} from A!" a = A() print(a.func("some str")) "I am some str from A!" Но с таким нужно быть очень осторожным и точно знать, что тебе это нужно, потому что потенциально такое решение может разрастись до монструозной херни, поддерживать которую будет физически невозможно.
Обсуждают сегодня