Biraz daha seçenek. Pylab'ın etkin olduğu Ipython'da, dedent zaten ad alanında. Kontrol ettim ve matplotlib'den. Veya ile ithal edilebilir:
from matplotlib.cbook import dedent
Dokümantasyonda textwrap eşdeğerinden daha hızlı olduğunu ve ipython'daki testlerimde hızlı testlerimle ortalama 3 kat daha hızlı olduğunu belirtiyor. Ayrıca, dizeyi nasıl oluşturduğunuzda esnek olmanızı sağlayan önde gelen boş satırları atması avantajına sahiptir:
"""
line 1 of string
line 2 of string
"""
"""\
line 1 of string
line 2 of string
"""
"""line 1 of string
line 2 of string
"""
Bu üç örnek üzerinde matplotlib özünün kullanılması aynı mantıklı sonucu verecektir. Textwrap dedent işlevi 1. örnekle önde gelen bir boş satıra sahip olacaktır.
Açık olan dezavantajı, matplotlib harici modül iken textwrap'ın standart kütüphanede olmasıdır.
Buradaki bazı dengesizlikler ... özel işlevler, dizelerin tanımlandığı yerde kodunuzu daha okunabilir hale getirir, ancak dizeyi kullanılabilir biçimde almak için daha sonra işlem yapılmasını gerektirir. Docstring'lerde, docstring'in çoğu kullanımı gerekli işlemi yapacağından doğru girinti kullanmanız gerektiği açıktır.
Kodumda uzun olmayan bir dizeye ihtiyacım olduğunda, uzun dizenin çevreleyen girintiden düşmesine izin verdiğim şu kuşkulu çirkin kodu buluyorum. Kesinlikle "Güzel çirkin daha iyidir." Başarısız, ama bir kişi daha basit ve daha açık seçik olduğu iddia edilebilir.
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()