कुछ और विकल्प। पायलैब सक्षम के साथ इफिथॉन में, नामस्थान में समर्पण पहले से ही है। मैंने जाँच की और यह matplotlib से है। या इसके साथ आयात किया जा सकता है:
from matplotlib.cbook import dedent
दस्तावेज़ीकरण में यह कहा गया है कि यह टेक्स्टव्रेप के बराबर तेज़ है और 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
"""
इन तीन उदाहरणों पर मात्प्लोटलिब का उपयोग करने से समान समझदार परिणाम मिलेगा। Textwrap समर्पण फ़ंक्शन में 1 उदाहरण के साथ एक अग्रणी रिक्त पंक्ति होगी।
स्पष्ट नुकसान यह है कि textwrap मानक पुस्तकालय में है, जबकि matplotlib बाहरी मॉड्यूल है।
कुछ ट्रेडऑफ़ यहाँ ... समर्पण फ़ंक्शंस आपके कोड को अधिक पठनीय बनाते हैं जहाँ स्ट्रिंग्स को परिभाषित किया जाता है, लेकिन बाद में प्रयोग करने योग्य प्रारूप में स्ट्रिंग प्राप्त करने के लिए प्रोसेसिंग की आवश्यकता होती है। डॉकस्ट्रिंग्स में यह स्पष्ट है कि आपको सही इंडेंटेशन का उपयोग करना चाहिए क्योंकि डॉकस्ट्रिंग के अधिकांश उपयोग आवश्यक प्रसंस्करण करेंगे।
जब मुझे अपने कोड में एक गैर लंबी स्ट्रिंग की आवश्यकता होती है, तो मुझे निम्नलिखित कोडली बदसूरत कोड मिलते हैं जहां मैं लंबे स्ट्रिंग को संलग्नक इंडेंटेशन से बाहर जाने देता हूं। निश्चित रूप से "सुंदर बदसूरत से बेहतर है।" पर निश्चित रूप से विफल रहता है, लेकिन कोई यह तर्क दे सकता है कि यह सरल और समर्पण विकल्प की तुलना में अधिक स्पष्ट है।
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()