मैं निश्चित रूप से अधिक format
विधि पसंद करते हैं, के रूप में यह बहुत लचीला है और आसानी से __format__
या str
या repr
अभ्यावेदन परिभाषित करके अपने कस्टम वर्गों के लिए बढ़ाया जा सकता है । इसे सरल रखने के लिए, मैं निम्नलिखित उदाहरणों में print
का उपयोग कर रहा हूं, जिसे sys.stdout.write
द्वारा प्रतिस्थापित किया जा सकता है।
सरल उदाहरण: संरेखण/भरने
#Justify/ALign (left, mid, right)
print("{0:<10}".format("Guido")) # 'Guido '
print("{0:>10}".format("Guido")) # ' Guido'
print("{0:^10}".format("Guido")) # ' Guido '
हम किसी भी अन्य चरित्र
द्वारा स्पेस के स्थान पर
align
निर्दिष्ट करता है जो
^
,
<
और
>
भरण चरित्र के बगल में जोड़ सकते हैं
print("{0:.^10}".format("Guido")) #..Guido...
Multiinput उदाहरण: संरेखित और भरने के कई आदानों
print("{0:.<20} {1:.>20} {2:.^20} ".format("Product", "Price", "Sum"))
#'Product............. ...............Price ........Sum.........'
उन्नत उदाहरण
आप अपने कस्टम वर्गों है, तो आप इस प्रकार के रूप में यह str
या repr
निरूपण है परिभाषित कर सकते हैं :
class foo(object):
def __str__(self):
return "...::4::.."
def __repr__(self):
return "...::12::.."
अब आप उन परिभाषित विधियों को कॉल करने के लिए पाइथन को बताने के लिए !s
(str) या !r
(repr) का उपयोग कर सकते हैं। यदि कुछ भी परिभाषित नहीं किया गया है, तो पायथन __format__
पर डिफ़ॉल्ट है जिसे ओवरराइट भी किया जा सकता है। एक्स = foo()
print "{0!r:<10}".format(x) #'...::12::..'
print "{0!s:<10}".format(x) #'...::4::..'
स्रोत: अजगर आवश्यक संदर्भ, डेविड M बीज़ले, 4 संस्करण
shweet! धन्यवाद ... यह बहुत आसान होना था। umm अब 3 एक साथ सही उत्तरों के साथ जो हरे रंग की टिक प्राप्त करता है? –