Я соглашаюсь с nosklo. Между прочим, даже с использование однажды, выбросьте функция, большую часть времени Вы просто хотите использовать что-то от модуля оператора.
, НАПРИМЕР:
у Вас есть функция с этой подписью: myFunction (данные, функция обратного вызова).
Вы хотите передать функцию, которые добавляют 2 элемента.
Используя лямбду:
myFunction(data, (lambda x, y : x + y))
pythonic путь:
import operator
myFunction(data, operator.add)
Или курс это - простой пример, но существует много материала, который модуль оператора обеспечивает, включая методы set объектов / методы get для списка и dict. Действительно прохладный.
Грамматика может быть очень сложной в некоторых других языках, кроме английского, и вы должны знать, что практически невозможно создать правильные сложные предложения, используя ваш подход.
Помните, что несколько переменных и жанр (мужской / female) также добавляет сложности.
Решение состоит в том, чтобы генерировать только простые предложения, в которых есть только одна переменная. Это тот случай, который поддерживается ngettext
.
Поймите, что ngettext - это нечто замечательное, и это то, что большинство коммерческих фреймворков i18n от компаний-разработчиков программного обеспечения для ошибок даже не поддерживают. Несмотря на это, у него есть свои ограничения, поэтому вскоре решение вашего вопроса - разделить ваше сложное предложение на несколько простых, которые можно перевести с помощью только одной переменной.