3 ms·
It being a language feature gives you controlled access to the lexical scope, such that the template string can refer to variables by name rather than having to
by jsnell 1y ago
It being a language feature gives you controlled access to the lexical scope, such that the template string can refer to variables by name rather than having to pass each value as a parameter. Doing it via parameters is repetitive and/or error-prone.
- linsomniac 1y agoYou CAN get access to the calling scope of a function. Something like: current_frame = inspect.currentframe() env = current_frame.f_back.f_locals.copy() I did it in uplaybook so that you can do things like: for module in ['foo', 'bar', 'baz']: ln(path="/etc/apache2/mods-enabled", src="/etc/apache2/mods-available/{{ module }}.load") This is an ansible-like tooling with a python instead of YAML syntax, hence the Jinja2 templating.