وspeaklater هو وحدة بيثون التي توفر سلاسل كسول للترجمة على & nbsp؛. الأساس تحصل على الكائن الذي يبدو أن هناك سلسلة ولكن بتغيير القيمة في كل مرة يتم تقييم قيمة على أساس للاستدعاء التي تقدمها.
على سبيل المثال يمكن أن يكون لديك وظيفة lazy_gettext العالمية التي بإرجاع سلسلة كسول مع قيمة اللغة مجموعة الحالية.
على سبيل المثال:
>>> من speaklater make_lazy_string استيراد
>>> sval = u'Hello العالم "
>>> سلسلة = make_lazy_string (لامدا: sval)
وهذه السلسلة كسول تقييم لقيمة المتغير sval.
>>> سلسلة
lu'Hello العالم "
>>> يونيكود (سلسلة)
u'Hello العالم "
>>> string.upper ()
u'HELLO WORLD "
إذا قمت بتغيير قيمة، فإن سلسلة كسول تتغير أيضا:
>>> sval = u'Hallo فيلت "
>>> string.upper ()
u'HALLO فيلت "
هذا هو مفيد خاصة عندما يقترن مع موضوع المحلي والترجمات gettext أو dicts سلاسل للترجمة:
>>> من speaklater make_lazy_gettext استيراد
>>> من خيوط استيراد المحلي
>>> ل = المحلية ()
>>> l.translations = {u'Yes ':' جا '}
>>> lazy_gettext = make_lazy_gettext (لامدا: l.translations.get)
>>> نعم = lazy_gettext (u'Yes ')
>>> الطباعة نعم
جا
>>> l.translations [u'Yes '] = u'Si "
>>> الطباعة نعم
سي
سلاسل كسول لم سلاسل حقيقية حتى إذا قمت بتمرير هذا النوع من السلسلة إلى وظيفة التي تنفذ الاختيار سبيل المثال، فإنه ستفشل. في هذه الحالة لديك لتحويله صراحة مع يونيكود و / أو سلسلة اعتمادا على ما اكتب سلسلة بتغليف سلسلة كسول.
للتحقق مما إذا سلسلة هي كسولة، يمكنك استخدام وظيفة is_lazy_string:
>>> من speaklater is_lazy_string استيراد
>>> is_lazy_string (u'yes ')
زائف
>>> is_lazy_string (نعم)
حقيقية
المتطلبات:
بيثون
لم يتم العثور على التعليقات