speaklater is 'n Python module wat bied lui snare vir vertalings. & Nbsp; Basies jy 'n voorwerp wat lyk na 'n string te wees nie, maar verander die waarde elke keer as die waarde is geëvalueer op grond van 'n call able jy verskaf.
Byvoorbeeld kan jy 'n globale lazy_gettext funksie wat gee 'n lui string met die waarde van die huidige stel taal.
Voorbeeld:
>>> Van speaklater invoer make_lazy_string
>>> Sval = u'Hello Wêreld '
>>> String = make_lazy_string (lambda: sval)
Dit lui string sal evalueer aan die waarde van die sval veranderlike.
>>> String
lu'Hello Wêreld '
>>> Unicode (string)
u'Hello Wêreld '
>>> String.upper ()
u'HELLO wêreld '
As jy die waarde verander, sal die lui string sowel verander:
>>> Sval = u'Hallo Welt '
>>> String.upper ()
u'HALLO WELT '
Dit is veral handig wanneer gekombineer met 'n draad plaaslike en gettext vertalings of dicts van vertaalbaar snare:
>>> Van speaklater invoer make_lazy_gettext
>>> Van threading invoer plaaslike
>>> L = plaaslike ()
>>> L.translations = {u'Yes ':' Ja '}
>>> Lazy_gettext = make_lazy_gettext (lambda: l.translations.get)
>>> Ja = lazy_gettext (u'Yes ')
>>> Druk ja
Ja
>>> L.translations [u'Yes '] = u'Si'
>>> Druk ja
Si
Lazy snare is geen werklike snare so as jy slaag om hierdie soort van tou aan 'n funksie wat verrig 'n geval tjek, sal dit misluk. In daardie geval moet jy uitdruklik skakel dit met unicode en / of string afhangende van watter string tik die lui string saamvat.
Om te kyk of 'n string is lui, kan jy die is_lazy_string funksie gebruik:
>>> Van speaklater invoer is_lazy_string
>>> Is_lazy_string (u'yes ')
Valse
>>> Is_lazy_string (ja)
Ware
Vereistes :
- Python
Kommentaar nie gevind