Шаблоны Python и выполнение функций - PullRequest
1 голос
/ 19 декабря 2011

У меня есть вопрос, который по сути является вопросом о возможностях шаблонизатора Python.

Предположим, у меня есть следующий код:

import string as st

def foo(bar):
    if bar:
        t = 'world'
    else:
        t = 'not happening'

    return t

temp = st.Template("hello $bar")
final = temp.some_substitute_magic()

, а затем

print final

должно дать

hello world

Возможно ли это сделать с помощью какой-нибудь магии Питона?

Я знаю, как сделать safe_substitute со словарем, но я хотел бы знать, как сделать замену с помощью функции, которой передается каждый идентификатор (в данном случае $ bar), а затем возвращаемое значение подставляется в шаблон.

1 Ответ

0 голосов
/ 19 декабря 2011

Довольно просто на самом деле:)

Просто подражайте работе диктата, и все готово.

class Scope(object):
    def __getitem__(self, key):
        return 'call for %s' % key

print final.substitute(Scope())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...