Một số tùy chọn khác. Trong Ipython với pylab được kích hoạt, cống hiến đã có trong không gian tên. Tôi đã kiểm tra và nó là từ matplotlib. Hoặc nó có thể được nhập với:
from matplotlib.cbook import dedent
Trong tài liệu có ghi rằng nó nhanh hơn so với textwrap tương đương và trong các thử nghiệm của tôi trong ipython, nó thực sự nhanh hơn trung bình 3 lần so với các thử nghiệm nhanh của tôi. Nó cũng có lợi ích là nó loại bỏ bất kỳ dòng trống hàng đầu nào, điều này cho phép bạn linh hoạt trong cách bạn xây dựng chuỗi:
"""
line 1 of string
line 2 of string
"""
"""\
line 1 of string
line 2 of string
"""
"""line 1 of string
line 2 of string
"""
Sử dụng suy luận matplotlib trên ba ví dụ này sẽ cho kết quả hợp lý như nhau. Hàm suy luận textwrap sẽ có một dòng trống hàng đầu với ví dụ thứ nhất.
Bất lợi rõ ràng là textwrap nằm trong thư viện tiêu chuẩn trong khi matplotlib là mô-đun bên ngoài.
Một số sự đánh đổi ở đây ... các hàm suy diễn làm cho mã của bạn dễ đọc hơn khi các chuỗi được xác định, nhưng yêu cầu xử lý sau để có được chuỗi ở định dạng có thể sử dụng được. Trong tài liệu, rõ ràng là bạn nên sử dụng thụt lề chính xác vì hầu hết việc sử dụng chuỗi doc sẽ thực hiện xử lý theo yêu cầu.
Khi tôi cần một chuỗi không dài trong mã của mình, tôi tìm thấy mã xấu được thừa nhận sau đây khi tôi để chuỗi dài thoát ra khỏi vết lõm kèm theo. Chắc chắn thất bại trong "Đẹp thì tốt hơn xấu.", Nhưng người ta có thể lập luận rằng nó đơn giản và rõ ràng hơn so với sự thay thế hoàn hảo.
def example():
long_string = '''\
Lorem ipsum dolor sit amet, consectetur adipisicing
elit, sed do eiusmod tempor incididunt ut labore et
dolore magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip.\
'''
return long_string
print example()