speaklater est un module Python qui fournit des chaînes paresseux pour les traductions. & Nbsp; Fondamentalement, vous obtenez un objet qui semble être une chaîne mais change la valeur chaque fois que la valeur est évaluée sur la base d'un appelable que vous fournissez.
Par exemple, vous pouvez avoir une fonction de lazy_gettext mondiale qui retourne une chaîne paresseux avec la valeur de la langue de jeu actuel.
Exemple:
>>> From speaklater importation make_lazy_string
>>> Sval = u'Salut mondiale '
>>> Chaîne = make_lazy_string (lambda: sval)
Cette chaîne paresseux évaluera à la valeur de la variable sval.
>>> Chaîne
lu'Hello mondiale '
>>> Unicode (chaîne)
u'Salut mondiale '
>>> String.upper ()
u'Salut MONDE
Si vous modifiez la valeur, la chaîne paresseux va changer ainsi:
>>> Sval = u'Hallo Welt '
>>> String.upper ()
u'HALLO WELT '
Ceci est particulièrement utile lorsqu'il est combiné avec un fil local et traductions ou dicts de chaînes traduisibles gettext:
>>> From speaklater importation make_lazy_gettext
>>> De l'importation de filetage locale
>>> L = local ()
>>> l.translations = {u'Yes »:« Ja »}
>>> Lazy_gettext = make_lazy_gettext (lambda: l.translations.get)
>>> oui = lazy_gettext (u'Yes »)
>>> Print oui
Ja
>>> L.translations [u'Yes '] = u'Si'
>>> Print oui
Si
Cordes Lazy sont pas vraies cordes alors si vous passez ce genre de chaîne à une fonction qui effectue une vérification de l'instance, elle échouera. Dans ce cas, vous devez convertir explicitement avec unicode et / ou une chaîne en fonction de ce type de chaîne la chaîne paresseux encapsule.
Pour vérifier si une chaîne est paresseux, vous pouvez utiliser la fonction is_lazy_string:
>>> From speaklater importation is_lazy_string
>>> is_lazy_string (u'yes »)
Faux
>>> Is_lazy_string (oui)
Vrai
Exigences :
- Python
Commentaires non trouvées