2008-10-19 17 views
186

किस प्रकार की वस्तुएं "सबस्क्रिप्ट करने योग्य" के डोमेन में आती हैं?पायथन में, इसका मतलब क्या है यदि कोई ऑब्जेक्ट सबस्क्रिप्ट करने योग्य है या नहीं?

+2

एलिस्टेयर ने "स्क्रिप्ट करने योग्य" ऑब्जेक्ट्स (वैध शब्द), "सबस्क्रिप्ट करने योग्य" ऑब्जेक्ट्स (वैध शब्द भी नहीं) के बारे में पूछा। एली, क्या आप वाकई इस सवाल को संपादित करने में सही काम करते हैं? मैं एलिस्टेयर का फैसला करने के लिए संपादन को रोलबैक करता हूं। – tzot

+4

वे चर जो हम नहीं जानते हैं: क्या एलिस्टेयर ने उत्तर दिया क्योंकि वे संतुष्ट थे, या क्योंकि उन्होंने सोचा था कि "यहां एक जवाब है; मुझे लगता है कि यह सही है"? – tzot

+4

जो भी हो; हालांकि, मुझे अभी भी लगता है कि सीधे सवाल को संपादित करने के बजाय, एलिस्टेयर को संपादित करने के लिए उचित तरीका टिप्पणी करना और इंतजार करना होगा क्योंकि हम * सोचते हैं * हम जानते हैं कि सवाल क्या था। – tzot

उत्तर

172

इसका मूल रूप से अर्थ है कि ऑब्जेक्ट __getitem__() विधि लागू करता है। दूसरे शब्दों में, यह उन वस्तुओं का वर्णन करता है जो "कंटेनर" हैं, जिसका अर्थ है कि उनमें अन्य ऑब्जेक्ट्स हैं। इसमें सूचियां, टुपल्स और शब्दकोश शामिल हैं।

11

एक स्क्रिप्ट योग्य ऑब्जेक्ट एक ऐसा ऑब्जेक्ट है जो इसे किए गए कार्यों को रिकॉर्ड करता है और यह उन्हें "स्क्रिप्ट" के रूप में संग्रहीत कर सकता है जिसे दोहराया जा सकता है।

उदाहरण के लिए, देखें: Application Scripting Framework

अब, अगर एलिस्टेयर नहीं पता था कि वह क्या कहा और वास्तव में मतलब था "subscriptable" वस्तुओं (के रूप में दूसरों द्वारा संपादित), तो (के रूप में mipadi भी जवाब) यह सही है एक:

एक सबस्क्रिप्ट करने योग्य ऑब्जेक्ट कोई ऑब्जेक्ट है जो __getitem__ विशेष विधि (सोच सूची, शब्दकोश) लागू करता है।

+1

ध्यान दें कि मैं "स्क्रिप्ट करने योग्य" ऑब्जेक्ट्स के बारे में मूल प्रश्न का उत्तर दे रहा हूं, न कि "सबस्क्रिप्ट करने योग्य", जैसा कि दूसरों द्वारा संपादित किया गया है, एलिस्टेयर नहीं। मैं वास्तव में टिप्पणी करने के लिए एलिस्टेयर पसंद करेंगे। – tzot

+0

ठीक है, ऊपर उठाया गया। लेकिन अगर आप पीयर प्रेशर बैज चाहते हैं, तो मुझे बताएं: डी –

+0

आह, मेरे संग्रह के लिए एक नया बैज! :) जाहिर है, मजाक कर रहे हैं। एकमात्र चीज जिसने सवाल के संपादन को उचित ठहराया था वह था कि एलिस्टेयर ने जवाब दिया; मुझे अभी भी यकीन नहीं है कि क्या एलिस्टेयर चुनने के बारे में निश्चित था। – tzot

39

मेरे सिर के ऊपर बंद, निम्न केवल अंतर्निहित इन है कि subscriptable हैं:

string: "foobar"[3] == "b" 
tuple: (1,2,3,4)[3] == 4 
list: [1,2,3,4][3] == 4 
dict: {"a":1, "b":2, "c":3}["c"] == 3 

लेकिन mipadi's answer सही है - किसी भी वर्ग को लागू करने वाली __getitem__

1

मैं इस एक ही था subscriptable है मुद्दा। मैं

arr = [] 
arr.append["HI"] 

तो [ का उपयोग कर त्रुटि उत्पन्न कर रहा था। यह arr.append("HI")

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