_
(имя функции единственного подчеркивания) часто ассоциируется с интернационализацией из-за прецедента gettext
, подхода GNU, который также нашел место в стандартной библиотеке Python (та же архитектура, совершенно другая реализация) - за документы модуля ,
gettext.install(domain[, localedir[, unicode[, codeset[, names]]]])
Это устанавливает функцию _()
во встроенном пространстве имен Python, основанном на домене, localedir и наборе кодов, которые передаются вфункция перевода ().Флаг Юникода передается в метод install () результирующего объекта перевода.
Параметр names см. В описании метода install () объекта перевода.
Как видно ниже, выобычно отмечают строки в вашем приложении, которые являются кандидатами на перевод, заключая их в вызов функции _()
, например:
print _('This string will be translated.')
Для удобства вы хотите, чтобы_()
функция, которая будет установлена во встроенном пространстве имен Python, поэтому она легко доступна во всех модулях вашего приложения.
Как упоминает @ptomato, Mercurial следовал этой традиции, называя _
эквивалентомсвою собственную функцию, которую они используют для тех же целей интернационализации.
Существует также отдельная традиция использовать _
в качестве идентификатора "Мне все равно", как в
fee, fie, _, _, foo, _, fum = thesevenitemstuple
но, конечно, лучше не использовать обе традиции одновременно в одном коде; -)