-5 के लिए 256 रेंज के साथ क्या करना है following:
वर्तमान कार्यान्वयन -5 और 256 के बीच सभी पूर्णांकों के लिए पूर्णांक ऑब्जेक्ट की श्रृंखला रहता है, जब आप उस श्रेणी में एक int
बनाने आप वास्तव में बस मौजूदा वस्तु का संदर्भ वापस प्राप्त करें।
इस प्रदर्शन करने के लिए, नोटिस id(123)
कैसे एक ही मूल्य लौटने रहता है, जबकि id(9999)
विभिन्न मूल्यों लौट सकते हैं:
In [18]: id(123)
Out[18]: 9421736
In [19]: id(123)
Out[19]: 9421736
In [20]: id(9999)
Out[20]: 9708228
In [21]: id(9999)
Out[21]: 10706060
इस कोर्स के वर्तमान क्रियान्वन के शिल्पकृति है। एक अलग पायथन कार्यान्वयन ऐसा नहीं कर सकता है, या एक अलग सीमा का उपयोग कर सकता है।
अपने पिछले उदाहरण के रूप में:
In [14]: a=[999999, 2, 3]
In [15]: b=a[:]
In [16]: map(id, a)
Out[16]: [10908252, 9421180, 9421168]
In [17]: map(id, b)
Out[17]: [10908252, 9421180, 9421168]
आप देख सकते हैं, [:]
बस प्रतियां संदर्भ। यह बताता है कि a[i] is b[i]
True
का मूल्यांकन i
के लिए क्यों करता है।
मुझे लगता है कि आप दो विचित्र बातें भ्रमित कर रहे हैं: 1) 'ख = एक [:]' प्रतियां सभी पूर्णांक के संदर्भ, इसलिए 'बी [0]' एक ही int को 'a [0] 'और' a [0] के रूप में इंगित करता है b [0] '' सत्य' देता है। 2) संख्याओं के लिए refs -5 के माध्यम से 256 हर समय रखा जाता है। – Shep