वहाँ कुछ समस्याओं यहाँ, एक बार आप खुदाई शुरू कर रहे हैं:
संबंधित आइटम पर कहा जाता है " element_index "जिसे पूर्णांक माना जाता है।
समस्या 1: जब तक उपयोगकर्ता भाषा संदर्भ मैनुअल में "पूर्णांक" से लिंक का पालन नहीं करते हैं, वे नहीं जानते कि -1 को एक अभिव्यक्ति माना जाता है, पूर्णांक नहीं। वैसे, किसी ने "प्रलेखित के रूप में काम करता है" कहने का लुत्फ उठाया, पहले 7 लोगों को देखना चाहिए :-)
पसंदीदा समाधान: परिभाषा को बदलें ताकि "element_index" में पूर्णांक से पहले वैकल्पिक '-' हो।
यह एक पूर्णांक है, है ना? इतना तेज़ नहीं ... बाद में दस्तावेज़ कहते हैं कि "फॉर्म की अभिव्यक्ति" [इंडेक्स] '__getitem__()
"
समस्या 3:' [element_index] '(अनुक्रमणिका परिभाषित नहीं है) का उपयोग करना चाहिए।
समस्या 4: हर कोई अपने सिर के शीर्ष से नहीं जानता कि __getitem__()
करता है। स्पष्ट दस्तावेज़ों की आवश्यकता है।
तो हम यहाँ एक धक्का के साथ-साथ एक पूर्णांक का उपयोग कर सकते हैं, क्या हम कर सकते हैं? हां, एक समस्या या दो के साथ:
element_index एक पूर्णांक है? हाँ, वह एक dict के साथ काम करता है:
>>> "{0[2]}".format({2: 'int2'})
'int2'
ऐसा लगता है कि हम भी गैर पूर्णांक तार का उपयोग कर सकते हैं, लेकिन यह अधिक स्पष्ट प्रलेखन की जरूरत है (समस्या 5):
>>> "{0[foo]}".format({'foo': 'bar'})
'bar'
लेकिन हम नहीं कर सकते '2' (समस्या 6) की तरह एक कुंजी के साथ एक dict का उपयोग करें:
>>> "{0[2]}".format({'2': 'str2'})
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 2
>>> "{0['2']}".format({'2': 'str2'})
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: "'2'"
समस्या 7: "पूर्णांक" वास्तव में "decimalinteger" होने के लिए प्रलेखित किया जाना चाहिए यही कारण है कि ...0x22 और 0b11 str के रूप में इलाज कर रहे हैं, और 010 (एक "octalinteger"), 10 के रूप में व्यवहार किया जाता है 8 नहीं:
>>> "{0[010]}".format('abcdef')
'a'
अद्यतन:
"" "
नियम:PEP 3101 सच्ची कहानी बताता है किसी आइटम कुंजी को पार्स करने के लिए बहुत सरल होता है। यदि यह अंक से शुरू होता है, तो इसे एक संख्या के रूप में माना जाता है, अन्यथा इसे स्ट्रिंग के रूप में उपयोग किया जाता है।
क्योंकि कुंजी उद्धरण-सीमित नहीं हैं, इसलिए निर्दिष्ट करना संभव नहीं है मनमानी शब्दकोश कुंजी (उदाहरण के लिए, स्ट्रिंग्स "10" या ": -]") प्रारूप स्ट्रिंग के भीतर से।
""
प्रारूप फ़ंक्शन परिभाषा में एक निरीक्षण की तरह लगता है – barkmadley
पायथन के बगबेस में प्रासंगिक बग - http://bugs.python.org/issue7951। संक्षेप में, इस मुद्दे को लागू करने के दुष्प्रभावों के कारण इस मुद्दे को एक दस्तावेज बग के रूप में माना जा रहा है और यह भी तथ्य कि इससे खराब कोड हो सकता है। – Sam