speaklater הוא מודול פייתון המספק מחרוזות עצלנים לתרגומים & nbsp;. בעיקרון אתה מקבל אובייקט שנראה כמחרוזת אך משנה את הערך בכל פעם שהערך מוערך על בסיס callable שאתה מספק.
לדוגמא אתה יכול להיות פונקצית lazy_gettext גלובלית שמחזירה מחרוזת עצלנית עם הערך של שפת הסט הנוכחית.
לדוגמא:
>>> מmake_lazy_string יבוא speaklater
>>> Sval = u'Hello העולם "
>>> מחרוזת = make_lazy_string (למבדה: sval)
מחרוזת עצלנית זה תהיה להעריך את הערך של משתנה sval.
>>> מחרוזת
lu'Hello העולם "
>>> Unicode (מחרוזת)
u'Hello העולם "
>>> String.upper ()
u'HELLO העולם "
אם תשנה את הערך, את המחרוזת עצלנית תשתנה גם כן:
>>> Sval = u'Hallo Welt "
>>> String.upper ()
u'HALLO Welt "
זה שימושי במיוחד בשילוב עם חוט מקומי ותרגומים או dicts של מחרוזות לתרגום gettext:
>>> מmake_lazy_gettext יבוא speaklater
>>> מיבוא השחלה מקומי
>>> L = מקומי ()
>>> = L.translations {u'Yes ': "Ja'}
>>> Lazy_gettext = make_lazy_gettext (למבדה: l.translations.get)
>>> כן = lazy_gettext (u'Yes ')
>>> הדפסה כן
Ja
>>> L.translations [u'Yes '] = u'Si'
>>> הדפסה כן
Si
מחרוזות עצלנים הן לא מייתרות אמיתי כך שאם אתה עובר את זה סוג של מחרוזת לפונקציה שמבצעת בדיקה למשל, זה ייכשל. במקרה שאתה צריך להמיר אותו באופן מפורש עם Unicode ו / או מחרוזת תלוי מה מחרוזת הקלד את המחרוזת עצלנית מתמצתת.
כדי לבדוק אם מחרוזת היא עצלנית, אתה יכול להשתמש בפונקצית is_lazy_string:
>>> מis_lazy_string יבוא speaklater
>>> Is_lazy_string (u'yes ')
False
>>> Is_lazy_string (כן)
נכון
דרישות :
- Python
תגובות לא נמצא