คลาสเทมเพลตสตริง Python ใช้สร้างสตริงเทมเพลตอย่างง่าย สตริงเทมเพลต Python ถูกนำมาใช้ครั้งแรกใน python 2.4 เทมเพลตสตริง Python ถูกสร้างขึ้นโดยส่งสตริงเทมเพลตเป็นอาร์กิวเมนต์ไปยังตัวสร้าง โดยที่ตัวดำเนินการการจัดรูปแบบสตริงใช้สำหรับเครื่องหมายเปอร์เซ็นต์สำหรับการแทนที่และวัตถุเทมเพลตใช้เครื่องหมายดอลลาร์
คลาสเทมเพลตมีสามวิธีในการสร้างสตริงจากเทมเพลต -
-
Class string.Template(แม่แบบ ) - คอนสตรัคเตอร์รับอาร์กิวเมนต์เดียว ซึ่งเป็นสตริงเทมเพลต
-
แทนที่(การทำแผนที่ **คำหลัก) - วิธีการที่แทนที่ค่าสตริง (การแมป) สำหรับค่าสตริงเทมเพลต การทำแผนที่เป็นอ็อบเจ็กต์ที่คล้ายกับพจนานุกรม และอาจเข้าถึงค่าต่างๆ ได้ในรูปแบบพจนานุกรม ถ้ามีการใช้อาร์กิวเมนต์คีย์เวิร์ด แสดงว่าเป็นตัวยึดตำแหน่ง เมื่อมีการใช้ทั้งการแมปและคีย์เวิร์ด คีย์เวิร์ดจะมีความสำคัญเหนือกว่า หากไม่มีตัวยึดตำแหน่งจากการแมปหรือคีย์เวิร์ด KeyError จะถูกส่งออกไป
-
safe_substitute(การทำแผนที่ **คำหลัก) - ทำหน้าที่คล้ายกับแทน () อย่างไรก็ตาม หากตัวยึดตำแหน่งหายไปจากการแมปหรือคำสำคัญ ตัวยึดตำแหน่งเดิมจะถูกใช้เป็นค่าเริ่มต้น ดังนั้นจึงหลีกเลี่ยง KeyError นอกจากนี้ การเกิดขึ้นของ '$' จะส่งกลับเครื่องหมายดอลลาร์
ออบเจ็กต์เทมเพลตยังมีแอตทริบิวต์ที่เปิดเผยต่อสาธารณะหนึ่งรายการ -
-
แม่แบบ - เป็นวัตถุที่ส่งผ่านไปยังอาร์กิวเมนต์เทมเพลตของตัวสร้าง แม้ว่าจะไม่มีการบังคับใช้การเข้าถึงแบบอ่านอย่างเดียว แต่ขอแนะนำว่าอย่าเปลี่ยนแอตทริบิวต์นี้ในโปรแกรมของคุณ
ตัวอย่างสตริงเทมเพลต Python
from string import Template t = Template('$when, $who $action $what.') s= t.substitute(when='In the winter', who='Rajesh', action='drinks', what ='Coffee') print(s) #dictionary as substitute argument d = {"when":"In the winter", "who":"Rajesh", "action":"drinks","what":"Coffee"} s = t.substitute(**d) print(s)
ผลลัพธ์
In the winter, Rajesh drinks Coffee. In the winter, Rajesh drinks Coffee.
safe_substitute()
from string import Template t = Template('$when, $who $action $what.') s= t.safe_substitute(when='In the winter', who='Rajesh', action='drinks', what ='Coffee') print(s)
ผลลัพธ์
In the winter, Rajesh drinks Coffee.
การพิมพ์เทมเพลตสตริง
แอตทริบิวต์ template ใน template object จะคืนค่าสตริงของเทมเพลต
from string import Template t = Template('$when, $who $action $what.') print('Template String: ', t.template)
ผลลัพธ์
Template String: $when, $who $action $what.
หลบหนีเครื่องหมาย $
from string import Template t = Template('$$ is called $name') s=t.substitute(name='Dollar') print(s)
ผลลัพธ์
$ is called Dollar${identifier} example
${<identifier>} is equivalent to $<identifier>
จำเป็นเมื่ออักขระตัวระบุที่ถูกต้องตามตัวยึดตำแหน่งแต่ไม่ได้เป็นส่วนหนึ่งของตัวยึดตำแหน่ง เช่น ${นาม}การพิสูจน์
from string import Template t = Template('$noun adjective is ${noun}ing') s = t.substitute(noun='Test') print(s)
ผลลัพธ์
Test adjective is Testing