2015-09-05 12 views
6

किसी this interesting formulation तैनात है, और मैं इसे बाहर एक अजगर 3 कंसोल में करने की कोशिश की:एक पाइथन चर के प्रिंट आउटपुट में `{...}` का अर्थ क्या है?

>>> (a, b) = a[b] = {}, 5 
>>> a 
{5: ({...}, 5)} 

यहाँ अनपैक करने के लिए एक बहुत, मैं क्या समझ में नहीं आता (और रोचक चरित्र योगों के शब्दों है जबकि लगता है विशेष रूप से कठिन खोजने के लिए) {...} का अर्थ इस संदर्भ में क्या है? थोड़ा ऊपर बदलना:

>>> (a, b) = a[b] = {'x':1}, 5 
>>> a 
{5: ({...}, 5), 'x': 1} 

यह इस दूसरे उत्पादन है कि वास्तव में मुझे चकरा है: मैं अपेक्षा की होगी {...} बदला गया है करने के लिए, लेकिन मेरे पास अनुमान कि , 5 एक टपल का तात्पर्य जहां पहले है तत्व किसी भी तरह से अपरिभाषित है? और यही है {...} का मतलब है? यदि ऐसा है, तो यह पाइथन में मेरे लिए एक नई श्रेणी है, और मैं इसके लिए एक नाम रखना चाहता हूं ताकि मैं और जान सकूं।

+0

इसे "एलिप्सिस" कहा जाता है, कृपया [यहां] देखें (https://stackoverflow.com/questions/772124/what-does-the-python-ellipsis-object-do) और [यहां] (https: //stackoverflow.com/questions/101268/hidden-features-of-python/112316#112316) – CoryKramer

+2

इसमें पाइथन की इलिप्सिस ऑब्जेक्ट – Eevee

उत्तर

12

यह एक संकेत है कि dict recurses, यानी स्वयं शामिल है। एक बहुत ही सरल उदाहरण:

>>> a = [] 
>>> a.append(a) 
>>> a 
[[...]] 

यह एक सूची है जिसका एकमात्र तत्व स्वयं ही है। जाहिर है कि repr सचमुच मुद्रित नहीं किया जा सकता है, या यह असीमित लंबा होगा; इसके बजाए, अंतर्निहित संकेतों को इंगित करने के लिए बिल्टिन प्रकार नोटिस करते हैं और ... का उपयोग करते हैं।

तो यह एक विशेष प्रकार का मूल्य नहीं है, इसका मतलब है कि "कुछ" यहां छोड़ा गया था "का सामान्य अंग्रेजी उपयोग", "शेष भाग को इंगित करने के लिए ब्रेसिज़ एक नियम है। तुम भी एक सूची के लिए ब्रैकेट के साथ इसे देख सकते हैं, जैसा कि ऊपर एक टपल के लिए कोष्ठकों के साथ दिखाया गया है, या कभी-कभी:

>>> b = [], 
>>> b[0].append(b) 
>>> b 
([(...)],) 

अजगर 3 reprlib के रूप में है, तो आप अपने खुद के वस्तुओं के साथ ऐसा कर सकते हैं कुछ उपकरण प्रदान करता है ।

+0

आकर्षक नहीं है! संवेदना प्रतिक्रिया के लिए धन्यवाद !!! –

संबंधित मुद्दे