String Formatting Method Call – जिस तरह से String Formatting Expression का Syntax पूरी तरह से C Language के printf() Function से Inspired है, ठीक उसी तरह से String Formatting Method Call का Syntax काफी हद तक C# Language के print() Method से Inspired है। हालांकि इस Method Call तरीके में भी Type Codes यानी Control Strings वे ही हैं, जिन्हें Formatting Expression के अन्तर्गत Discuss किया गया है।
चूंकि String Formatting Method Call, String Formatting Expression की तुलना में थोड़ा अधिक जटिल है, इसलिए कौनसा तरीका ज्यादा अच्छा है, ये कहना सम्भव नहीं है क्योंकि अलग-अलग Programmers को उनकी Personal Choice के आधार पर अलग-अलग तरीका Best लगता है। इसीलिए हम यहां पर दोनों ही तरीकों को Discuss कर रहे हैं।
जब हम String Formatting Method Call का तरीका Use करना चाहते हैं, तब हमें Python के format() Method को Use करना होता है। इस Method को हम Core Types Chapter के अन्तर्गत पहले भी Use कर चुके हैं।
इस Method द्वारा हम उन Parameters को Specify करते हैं, जिन्हें हम String में Specified Templates के स्थान पर Replace करना चाहते हैं, जबकि कौनसा Parameter किस Template के स्थान पर Place होगा, इस बात को Template के माध्यम से तय किया जाता है जहां हम अगले Example Program में बताए अनुसार कुल दो तरीकों से Templates के स्थान पर Templates को Specify कर सकते हैं-
[code] FileName: StringFormattingTemplateTypes.py # Position-Wise Templates tmplt = '{0}, {1} and {2}' print(tmplt.format("KRISHNA", "MURARI", "BIHARI")) # Same as above without declaring Variable print('{0}, {1} and {2}'.format("KRISHNA", "MURARI", "BIHARI")) print() # Keyword-Wise Templates tmplt = '{name1}, {name2} and {name3}' print(tmplt.format(name1="KRISHNA", name2="MURARI", name3="BIHARI")) # Position and Keyword both Templates tmplt = '{name1}, {0} and {name2}' print(tmplt.format("KRISHNA", name1="MURARI", name2="BIHARI")) print() # Relative Position Templates tmplt = '{}, {} and {}' print(tmplt.format("KRISHNA", "MURARI", "BIHARI")) Output KRISHNA, MURARI and BIHARI KRISHNA, MURARI and BIHARI KRISHNA, MURARI and BIHARI MURARI, KRISHNA and BIHARI KRISHNA, MURARI and BIHARI [/code]
जब हम format() Method का प्रयोग करते हुए Formatting करते हैं, तब Template के रूप में Curly Braces { } के माध्यम से उन जगहों को Mark करते हैं, जहां पर हम किसी Value को Substitute करना चाहते हैं जबकि इन Templates में हम कुल तीन तरीकों से Values को Substitute कर सकते हैं। पहले तरीके के अन्तर्गत हम Curly Brackets के बीच Number लिखकर Parameter की Positioning को तय करते हैं।
यानी हम Python को ये बताते हैं कि जिस Curly Brace के बीच 0 लिखा है, वहां format() Method में Specified First Parameter के मान को Substitute करना है, जिस Curly Brace के बीच 1 लिखा है, वहां format() Method में Specified Second Parameter के मान को Substitute करना है और यही क्रम आगे भी जारी रहता है।
जबकि यदि हम चाहें तो इन Curly Brackets में कोई Key भी Specify कर सकते हैं और फिर format() Method में उस Key को Value Set करके Substitute के रूप में Use कर सकते हैं।
और तीसरे तरीके के रूप में हम Empty Curly Braces Use करते हैं, जिसके परिणामस्वरूप Python जिस क्रम में format() Method में Values को Specify किया जाता है, Exactly उसी क्रम में सभी Values String में Substitute हो जाते हैं।
हम इन दोनों तरीकों को एक दूसरे के साथ Mix करके भी Use कर सकते हैं, लेकिन जब हम ऐसा करते हैं, तब इस बात का ध्यान रखना चाहिए कि Position Wise Curly Braces Specify करने के बाद यदि key को Specify कर दिया, तो उस key के बाद फिर से Position-Wise Curly Brace को Same Sequence Number के साथ Use नहीं कर सकते। इसलिए बेहतर यही रहता है कि हम Position-Wise या Keyword-Wise दोनों में से किसी एक तरीके का चुनाव कर लें और फिर पूरे Statement में उसी को Use करें, Mixing न करें।
Direct Keyword Specify करने के स्थान पर यदि हम चाहें तो Dictionaries का भी प्रयोग कर सकते हैं, जो कि तुलनात्मक रूप से ज्यादा आसान होता है। इतना ही नहीं, हम format() Method का प्रयोग करते हुए जिस तरह से String Specify करते हैं, ठीक उसी तरह से हम format() Method के स्थान पर Expression का भी प्रयोग कर सकते हैं। इसे समझने के लिए हम उपरोक्त Example को ही निम्नानुसार तरीके से Modify कर सकते हैं-
[code] FileName: StringFormattingMethod2ExpressionChange.py # Position-Wise Templates tmplt = '%s, %s and %s' print(tmplt % ("KRISHNA", "MURARI", "BIHARI")) # Same as above without declaring Variable print('%s, %s and %s' % ("KRISHNA", "MURARI", "BIHARI")) # Keyword-Wise Templates tmplt = '%(name1)s, %(name2)s and %(name3)s' print(tmplt % ({'name1':"KRISHNA",'name2':"MURARI",'name3':"BIHARI"})) Output KRISHNA, MURARI and BIHARI KRISHNA, MURARI and BIHARI KRISHNA, MURARI and BIHARI [/code]
% Formatting Expression की तरह ही format() Method भी Advance Usage के लिए काफी Complex हो सकते हैं जहां Format की जाने वाली String में Object के Attributes को Dot से और Dictionary की Keys को Square Bracket से Represent कर सकते हैं। इन सभी तरह की अन्य Advanced Formatting Technics को Python के Manual व Reference में काफी विस्तार से जाना जा सकता है। लेकिन जितना हमने यहां पर Discuss किया है, Python Programming से सम्बंधित ज्यादातर जरूरतों को उनसे आसानी से पूरा किया जा सकता है।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Python in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी है, तो निश्चित रूप से ये EBook भी आपके लिए काफी उपयोगी साबित होगी।
Python in Hindi | Page: 602 | Format: PDF