Как генерировать код в Python?

Senior
146 просмотров
AFK Offer AI

Строковая генерация: f-string/template → exec(). Опасно, но просто. AST generation: создаёшь AST узлы → compile() → exec(). ast.fix_missing_locations() — добавить lineno. Code templates: jinja2 для генерации Python файлов. Metaclass: type("MyClass", (Base,), {"method": func}) — создание классов в runtime. namedtuple, dataclass — code gen через декораторы. exec(compile(ast_tree, "", "exec")). Применения: ORM (SQLAlchemy генерирует классы), serializers, CLI frameworks. Протоколы: protobuf → Python, OpenAPI → клиент. Всегда документируй сгенерированный код.

Следующий вопрос

Что такое 12-factor app применительно к Python?