speaklater เป็นโมดูลหลามที่ให้สตริงขี้เกียจสำหรับการแปล & nbsp;. โดยทั่วไปคุณจะได้รับวัตถุที่ดูเหมือนจะเป็นสตริง แต่เปลี่ยนค่าเวลาค่าถูกประเมินตาม callable ให้คุณทุก
ตัวอย่างเช่นคุณสามารถมีฟังก์ชัน lazy_gettext ทั่วโลกที่ส่งกลับสตริงขี้เกียจที่มีค่าของภาษาชุดปัจจุบัน
ตัวอย่าง:
>>> จากการนำเข้า speaklater make_lazy_string
>>> SVAL = u'Hello โลก
>>> สตริง = make_lazy_string (แลมบ์ดา: SVAL)
สตริงนี้ขี้เกียจจะประเมินค่าของตัวแปร SVAL
>>> สตริง
lu'Hello โลก
>>> Unicode (สตริง)
u'Hello โลก
>>> string.upper ()
u'HELLO โลก '
ถ้าคุณเปลี่ยนค่าสตริงขี้เกียจจะเปลี่ยนเช่นกัน:
>>> SVAL = u'Hallo ดาม '
>>> string.upper ()
u'HALLO ดาม '
นี้จะมีประโยชน์โดยเฉพาะอย่างยิ่งเมื่อรวมกับด้ายแปลท้องถิ่นและ gettext หรือ dicts ของสตริงที่แปล:
>>> จากการนำเข้า speaklater make_lazy_gettext
>>> จากเกลียวนำเข้าท้องถิ่น
>>> L = ท้องถิ่น ()
>>> l.translations = {u'Yes ':' Ja '}
>>> lazy_gettext = make_lazy_gettext (แลมบ์ดา: l.translations.get)
>>> = yes lazy_gettext (u'Yes ')
>>> พิมพ์ใช่
Ja
>>> l.translations [u'Yes '] = u'Si'
>>> พิมพ์ใช่
ศรี
สตริงขี้เกียจเป็นสตริงไม่จริงดังนั้นหากคุณผ่านการเรียงลำดับของสายนี้ฟังก์ชั่นที่มีประสิทธิภาพการตรวจสอบเช่นนี้ก็จะล้มเหลว ในกรณีที่คุณต้องชัดเจนแปลงด้วย Unicode และ / หรือสตริงขึ้นอยู่กับสิ่งที่พิมพ์สตริง encapsulates สตริงขี้เกียจ
เพื่อตรวจสอบว่าสตริงคือขี้เกียจคุณสามารถใช้ฟังก์ชั่น is_lazy_string:
>>> จากการนำเข้า speaklater is_lazy_string
>>> is_lazy_string (u'yes ')
เท็จ
>>> is_lazy_string (ใช่)
True
ต้องการ
- หลาม
ความคิดเห็นที่ไม่พบ