speaklater é um módulo Python que fornece cordas preguiçosos para traduções. & Nbsp; Basicamente você tem um objeto que parece ser uma cadeia, mas altera o valor cada vez que o valor é avaliado com base em um exigível que você fornece.
Por exemplo, você pode ter uma função lazy_gettext global que retorna uma seqüência de preguiçoso com o valor da língua conjunto atual.
Exemplo:
>>> From speaklater importação make_lazy_string
>>> Sval = u'Hello World '
>>> String = make_lazy_string (lambda: sval)
Essa seqüência preguiçoso irá avaliar para o valor da variável sval.
>>> Cadeia
lu'Hello World '
>>> Unicode (string)
u'Hello World '
>>> String.upper ()
u'HELLO MUNDO '
Se você alterar o valor, a seqüência de preguiçoso mudará também:
>>> Sval = u'Hallo Welt '
>>> String.upper ()
u'HALLO EQUIMOSE '
Isto é especialmente útil quando combinado com um fio local e traduções gettext ou dicts de strings traduzíveis:
>>> From speaklater importação make_lazy_gettext
>>> From importação de threading locais
>>> L = local ()
>>> l.translations = {u'Yes »:« Ja '}
>>> Lazy_gettext = make_lazy_gettext (lambda: l.translations.get)
>>> Sim = lazy_gettext (u'Yes ')
>>> Print sim
Ja
>>> L.translations [u'Yes '] = u'Si'
>>> Print sim
Si
Cordas preguiçosos há cordas reais por isso, se você passar esse tipo de seqüência de caracteres para uma função que executa uma verificação de exemplo, ele irá falhar. Nesse caso, você tem que convertê-lo explicitamente com unicode e / ou cadeia, dependendo do que seqüência de digitar a seqüência de preguiçoso encapsula.
Para verificar se uma string é preguiçoso, você pode usar a função is_lazy_string:
>>> From speaklater importação is_lazy_string
>>> is_lazy_string (u'yes ')
Falso
>>> Is_lazy_string (sim)
Verdadeiro
Requisitos :
- Python
Comentários não encontrado