Python 2.6 đã giới thiệu str.format()
phương thức với cú pháp hơi khác so với %
toán tử hiện có . Cái nào tốt hơn và cho tình huống nào?
Sau đây sử dụng từng phương pháp và có cùng kết quả, vậy sự khác biệt là gì?
#!/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!"
Hơn nữa khi định dạng chuỗi xảy ra trong Python? Ví dụ: nếu mức ghi nhật ký của tôi được đặt thành CAO thì tôi vẫn sẽ nhấn để thực hiện
%
thao tác sau chứ? Và nếu vậy, có cách nào để tránh điều này?log.debug("some debug info: %s" % some_info)
%
phong cách cũ thường xuyên hơn, bởi vì nếu bạn không cần các khả năng cải tiến của format()
phong cách, %
phong cách thường thuận tiện hơn rất nhiều.
format()
phong cách định dạng và cũ %
theo phong cách định dạng dựa trên .