speaklater este un modul Python care oferă siruri leneș pentru traduceri & nbsp;. Practic ai un obiect care pare a fi un șir, dar schimbă valoarea de fiecare dată când valoarea este evaluat pe baza unui apelabilă a vă oferi.
De exemplu, puteți avea o funcție lazy_gettext global care returnează un șir leneș cu valoarea limbii set curent.
Exemplu:
>>> Din speaklater make_lazy_string import
>>> Sval = u'Hello Lume '
>>> String = make_lazy_string (lambda: sval)
Acest șir leneș va evalua la valoarea variabilei sval.
>>> Șir
lu'Hello World '
>>> Unicode (string)
u'Hello World '
>>> String.upper ()
u'Hello WORLD "
Dacă modificați valoarea, șirul leneș se va schimba, de asemenea:
>>> Sval = u'Hallo Welt '
>>> String.upper ()
u'HALLO WELT "
Acest lucru este în special la îndemână atunci când sunt combinate cu un fir locală și traduceri gettext sau face previziuni cum de siruri de caractere traductibile:
>>> Din speaklater make_lazy_gettext import
>>> De la filetare import locală
>>> L = locală ()
>>> l.translations = {u'Yes ":" Ja "}
>>> Lazy_gettext = make_lazy_gettext (lambda: l.translations.get)
>>> da = lazy_gettext (u'Yes ")
>>> Print da
Ja
>>> L.translations [u'Yes '] = u'Si'
>>> Print da
Si
Siruri de caractere Lazy exista siruri de caractere reale, deci, dacă treci acest tip de șir la o funcție care efectuează o verificare instanță, aceasta va eșua. În acest caz, va trebui să-l transforme în mod explicit cu unicode și / sau șir, în funcție de ceea ce șir de tip șir leneș încapsulează.
Pentru a verifica dacă un șir este leneș, puteți utiliza funcția de is_lazy_string:
>>> Din speaklater is_lazy_string import
>>> is_lazy_string (u'yes ")
Fals
>>> Is_lazy_string (da)
Adevărat
Cerințe :
- Python
Comentariile nu a fost găsit