speaklater is een Python module die lui strings Vertalingen & nbsp biedt;. In principe is een voorwerp dat lijkt op een string zijn, maar verandert de waarde elke keer de waarde wordt geëvalueerd op basis van een opvraagbare u verstrekt krijg je.
Zo kun je bijvoorbeeld een wereldwijde lazy_gettext functie die een luie string met de waarde van de huidige ingestelde taal terug te hebben.
Bijvoorbeeld:
>>> Van speaklater import make_lazy_string
>>> Sval = u'Hello World '
>>> String = make_lazy_string (lambda: sval)
Deze lui snaar beoordeelt de waarde van de variabele sval.
>>> Touwtje
lu'Hello World '
>>> Unicode (string)
u'Hello World '
>>> String.upper ()
u'HELLO WORLD '
Als u de waarde te wijzigen, zal de luie snaar ook veranderen:
>>> Sval = u'Hallo Welt '
>>> String.upper ()
u'HALLO WELT '
Dit is vooral handig wanneer het wordt gecombineerd met een draad lokale en gettext vertalingen of dicts van vertaalbaar strings:
>>> Van speaklater import make_lazy_gettext
>>> Van threading import lokale
>>> L = lokale ()
>>> L.translations = {u'Yes ':' Ja '}
>>> Lazy_gettext = make_lazy_gettext (lambda: l.translations.get)
>>> Ja = lazy_gettext (u'Yes ')
>>> Print ja
Ja
>>> L.translations [u'Yes '] = u'Si'
>>> Print ja
Si
Luie strings zijn geen echte snaren dus als je dit soort touw door te geven aan een functie die een instantie controle uitvoert, zal het mislukken. In dat geval moet u expliciet te zetten met unicode en / of touwtje afhankelijk van wat reekstype de luie touwtje inkapselt.
Om te controleren of een string is lui, kunt u de is_lazy_string functie te gebruiken:
>>> Van speaklater import is_lazy_string
>>> Is_lazy_string (u'yes ')
Vals
>>> Is_lazy_string (ja)
True
Eisen
- Python
Reacties niet gevonden