Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

คลาสเทมเพลตสตริงใน Python?


คลาสเทมเพลตสตริง 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