Python 2.6 แนะนำstr.format()
วิธีการที่มีไวยากรณ์แตกต่างกันเล็กน้อยจาก%
ผู้ให้บริการที่มีอยู่ ไหนดีกว่าและสำหรับสถานการณ์อะไร
ต่อไปนี้ใช้แต่ละวิธีและมีผลลัพธ์เหมือนกันดังนั้นความแตกต่างคืออะไร
#!/usr/bin/python sub1 = "python string!" sub2 = "an arg" a = "i am a %s" % sub1 b = "i am a {0}".format(sub1) c = "with %(kwarg)s!" % {'kwarg':sub2} d = "with {kwarg}!".format(kwarg=sub2) print a # "i am a python string!" print b # "i am a python string!" print c # "with an arg!" print d # "with an arg!"
นอกจากนี้การจัดรูปแบบสตริงเกิดขึ้นใน Python เมื่อใด ตัวอย่างเช่นหากระดับการบันทึกของฉันถูกตั้งค่าเป็นสูงฉันจะยังคงได้รับผลกระทบจากการดำเนินการต่อไปนี้
%
หรือไม่ และถ้าเป็นเช่นนั้นมีวิธีที่จะหลีกเลี่ยงปัญหานี้หรือไม่?log.debug("some debug info: %s" % some_info)
%
สไตล์เก่าๆ บ่อยขึ้นเพราะถ้าคุณไม่ต้องการความสามารถที่เพิ่มขึ้นของformat()
สไตล์%
สไตล์นั้นมักจะสะดวกกว่ามาก
format()
สไตล์การจัดรูปแบบและเก่า%
สไตล์การจัดรูปแบบชั่น