2010-10-06 2 views
0

При создании шаблона в Мако, я должен был бы написать такие вещи, как: ${_('Hello, %(fname)s %(lname)s') % {'fname':'John','lname':'Doe'}}Названы заменяет в строках с Мако

Я продолжаю получать SyntaxException: (SyntaxError) неожиданный EOF при разборе при написании этого. Есть ли какой-нибудь способ сделать то же самое?

${_('Hello, %s %s') % ('John', 'Doe')} работает, но при необходимости он не позволяет изменять порядок замен при изменении языка.

Спасибо.

+0

я обычно получаю неожиданный EOF или EOL, когда у меня есть непарные кавычки, скобки, скобки, и/или фигурные скобки. – PaulMcG

+0

я тоже. Но я много раз проверял, и все кажется правильным. – Pierre

ответ

0

Попробуйте новую строку Python форматирования:

>>> "{foo} {bar}".format(foo="foo", bar="bar") 
'foo bar' 
>>> "{foo} {bar}".format(**{"foo": "Hello", "bar": "World!"}) 
'Hello World!' 

Это выглядит лучше и перспективная.

+0

Работает отлично. Большое спасибо =) – Pierre

2

Использование {} внутри Mako's ${} сложно; по-видимому, Мако перестает анализировать выражение после нахождения первого }. Возможным решением является использование dict() вместо {}:

${_('Hello, %(fname)s %(lname)s') % dict(fname='John', lname='Doe')}