speaklater модуль Python, который обеспечивает ленивые строки для перевода & NBSP;. В общем, вы получите объект, который, кажется, быть строкой, но изменяет значение каждый раз, когда значение вычисляется на основе вызываемой вы предоставляете.
Например, вы можете иметь глобальную функцию, которая возвращает lazy_gettext ленивый строку со значением текущего установленного языка.
Пример:
>>> От импорта speaklater make_lazy_string
>>> SVAL = u'Hello мира "
>>> Строка = make_lazy_string (лямбда: SVAL)
Это ленивым Строка будет распознана на значении переменной SVAL.
>>> Строка
lu'Hello мира "
>>> Unicode (строка)
u'Hello мира "
>>> String.upper ()
u'HELLO МИР "
Если вы измените значение, ленивый строка изменится, а также:
>>> SVAL = u'Hallo Вельт "
>>> String.upper ()
u'HALLO ВЕЛЬТ "
Это особенно удобно, когда в сочетании с резьбой местного и GetText переводов или предсказывает в переводимых строк:
>>> От импорта speaklater make_lazy_gettext
>>> От импорта резьбы местного
>>> Л = местный ()
>>> L.translations = {u'Yes ':' Ja '}
>>> Lazy_gettext = make_lazy_gettext (лямбда: l.translations.get)
>>> Да = lazy_gettext (u'Yes ')
>>> Печати да
Я.
>>> L.translations [u'Yes '] = u'Si "
>>> Печати да
Си
Ленивые строки нет никаких реальных обязательств, так что если вы пройти этот вид строки в функцию, которая выполняет проверку экземпляра, это будет провал. В этом случае вы должны явно преобразовать его с Unicode и / или строка в зависимости от того, что строка введите ленивый строка инкапсулирует.
Чтобы проверить, является ли строка ленивый, вы можете использовать функцию is_lazy_string:
>>> От импорта speaklater is_lazy_string
>>> Is_lazy_string (u'yes ')
Ложь
>>> Is_lazy_string (да)
Правда
Требования
- Python
Комментарии не найдены