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