ตัวเลือกเพิ่มเติม ใน Ipython ที่เปิดใช้งาน pylab แล้วผู้อุทิศจะอยู่ในเนมสเปซแล้ว ฉันตรวจสอบและมาจาก matplotlib หรือสามารถนำเข้าด้วย:
from matplotlib.cbook import dedent
ในเอกสารมันระบุว่ามันเร็วกว่า textwrap เทียบเท่าหนึ่งและในการทดสอบของฉันใน ipython แน่นอนโดยเฉลี่ย 3 ครั้งด้วยการทดสอบอย่างรวดเร็วของฉัน นอกจากนี้ยังมีประโยชน์ที่จะทิ้งบรรทัดว่างนำหน้าซึ่งจะทำให้คุณมีความยืดหยุ่นในการสร้างสตริง:
"""
line 1 of string
line 2 of string
"""
"""\
line 1 of string
line 2 of string
"""
"""line 1 of string
line 2 of string
"""
การใช้ matplotlib ที่อุทิศให้กับตัวอย่างทั้งสามนี้จะให้ผลลัพธ์ที่เหมือนกัน ฟังก์ชั่นการอุทิศ textwrap จะมีบรรทัดว่างนำหน้าด้วยตัวอย่างที่ 1
ข้อเสียที่เห็นได้ชัดคือ textwrap อยู่ในไลบรารีมาตรฐานในขณะที่ matplotlib เป็นโมดูลภายนอก
การแลกเปลี่ยนบางอย่างที่นี่ ... ฟังก์ชั่นพิเศษทำให้โค้ดของคุณสามารถอ่านได้มากขึ้นเมื่อมีการกำหนดสตริง แต่ต้องการการประมวลผลในภายหลังเพื่อรับสตริงในรูปแบบที่ใช้งานได้ ในเอกสารมีความชัดเจนว่าคุณควรใช้การเยื้องที่ถูกต้องเนื่องจากการใช้งานส่วนใหญ่ของ docstring จะทำการประมวลผลที่จำเป็น
เมื่อฉันต้องการสตริงที่ไม่ยาวในรหัสของฉันฉันพบรหัสน่าเกลียดดังต่อไปนี้ที่ฉันปล่อยให้สตริงที่ยาวหลุดออกจากการเยื้อง ล้มเหลวอย่างแน่นอนใน "ความสวยงามดีกว่าน่าเกลียด" แต่ใคร ๆ ก็สามารถแย้งได้ว่ามันง่ายกว่าและชัดเจนกว่าทางเลือกที่อุทิศตน
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()