LINUX.ORG.RU

Генерация кода по динамическому шаблону

 


0

3

Есть задача в зависимости от обстоятельств генерировать файлы с кодом по уже существующим шаблонам, в которые можно передавать переменные.
Смотрел в сторону cog, но не очень понял до конца как он работает, так как задача генерить питоном - питонячий код.

Так покажи «уже существующие шаблоны». Если там элементарщина типа генерации нужных классов/циклов/…, то хоть подстановкой в строку.

cdshines ★★★★★
()

Проще всего форматировать строки по словарю с переменными без затей через %. Если что то более сложное - можно вместо словаря подпихивать свой объект эмулирующий словарь ну и там уже можно делать много интересного.

Еще одна альтернатива это всякие методы format, но мне они меньше нрав.

AntonI ★★★★
()
Ответ на: комментарий от WitcherGeralt

ага, видел не в 1 проекте, интересно.

noname_user ★★★
() автор топика
Ответ на: комментарий от ggrn

по итогу я его и начал использовать в своих целях, отлично подходит

noname_user ★★★
() автор топика

если в питоне тебе вдруг понадобилось метапрограммирование, самое время выкидывать питон

lovesan ★★
()

Как уже верно здесь сказали, если нужна генерация кода (метапрограммирование) - то python лучше сразу выкидывать и брать нормальный инструмент.

alienclaster ★★★
()

Ну смотря что за код надо генерить. Я генерил его генераторами.. Выплёвывая куски кода yield`ом. Ну и генератор вложенный генератор может например уровень отступов задавать. Можешь глянуть https://github.com/pawnhearts/django_vue_generator/blob/master/django_vue_generator/vue.py правда там js генерится, но это неважно.

Такой подход мне показался более универсальным и читаемым, короче мне так удобней было.

pawnhearts ★★★★★
()
Ответ на: комментарий от pawnhearts

интересно, но как то мне кажеться слишком усложненно (либо я усложняю свой код), в общем когда допилю то что хочу, скину ссылочку

noname_user ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.