2015-09-24 3 views
5

क्यों अजगर के रचनाकारों इस वाक्य रचना (अनुदेश)डेल निर्देश क्यों है और पायथन में कोई विधि नहीं है?

del list[index] 
इस (विधि) से अधिक

पसंद आया?

list.del(index) 

मुझे ऐसा लगता है कि delappend रूप में एक ही "cathegory", remove, find, e.t.c. के अंतर्गत आता है और इसलिए एक ही वाक्यविन्यास होना चाहिए (एक विधि हो), लेकिन किसी कारण से पाइथन के रचनाकारों ने इसे एक निर्देश के रूप में लागू किया। उन्होंने ऐसा क्यों किया?

+0

आप भी कर सकते हैं क्योंकि डेल एक वर्ग, एक विधि, आदि (monkeypatching में उदाहरण के लिए) –

+0

ए) 'del' सिर्फ एक' list' से आइटम निकालने की तुलना में अधिक उपयोग होता है। बी) आप 'हटाएं') विधि के साथ या 'पॉप()' विधि के साथ इंडेक्स द्वारा 'सूची' से वस्तुओं को हटा सकते हैं। मैं भविष्य में प्रासंगिक विषयों (जैसे 'del',' list') में अधिक शोध करने की सलाह देता हूं। – TigerhawkT3

+0

@ टाइगरहॉक 3 हां, मैं 'पॉप()', मेरी गलती के बारे में भूल गया। लेकिन अगर वे 'pop') दोनों सूचियों और शब्दकोशों के लिए एक विकल्प है तो वे 'del' क्यों रखते हैं? –

उत्तर

1

क्योंकि del एक बयान है कि आप इसके साथ कई चीजें नष्ट कर सकते हैं है, और के बाद से जब आप del साथ list_name[index] हटाना चाहते हैं वास्तव में आप एक वस्तु को नष्ट करना चाहते हैं और इस काम इसलिए कोई है कि del अन्य वस्तुओं के लिए करता है ऐसा करने के लिए सूचियों के लिए एक अनावश्यक विशेषता बनाने की आवश्यकता है!

हटाना आवर्ती रूप से परिभाषित किया गया है जिस तरह असाइनमेंट परिभाषित किया गया है। पूर्ण विवरण में इसे वर्तनी देने के बजाय, यहां कुछ संकेत दिए गए हैं।

लक्ष्य सूची को हटाने से प्रत्येक लक्ष्य को बाएं से दाएं, दोबारा हटा दिया जाता है।

एक नाम को हटाने से स्थानीय या वैश्विक नामस्थान से उस नाम के बाध्यकारी को हटा दिया जाता है, इस पर निर्भर करता है कि नाम एक ही कोड ब्लॉक में वैश्विक विवरण में होता है या नहीं। यदि नाम अनबाउंड है, तो नाम त्रुटि अपवाद उठाया जाएगा।

विशेषता संदर्भ, सदस्यता और slicings को हटाने प्राथमिक वस्तु में शामिल किया गया है; एक टुकड़ा हटाने का सामान्य प्रकार सही प्रकार के खाली टुकड़े के असाइनमेंट के बराबर होता है (लेकिन यह भी कटा हुआ वस्तु द्वारा निर्धारित किया जाता है)।

+1

अब मैं देखता हूं, 'डेल' न केवल सूचियों या शब्दकोशों के तत्वों को हटा सकता है, बल्कि किसी ऑब्जेक्ट को हटा सकता है, इसलिए जब तक सूचियों और शब्दकोशों के तत्व वस्तुएं हों, तब तत्व को हटाने के लिए और तरीके जोड़ने में कोई बात नहीं है। धन्यवाद। –

+0

@IlyaPeterov हाँ वास्तव में! और स्वागत करें! – Kasramvd

+0

बेहतर सवाल यह है कि 'डिलीट' अंतर्निहित फ़ंक्शन के बजाय 'del' कथन क्यों है? –

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