2012-05-21 29 views
6

संभव डुप्लिकेट:
why does python's list.append evaluate to false?पायथन - विस्तार() और संलग्न() वापस क्यों करता है कोई नहीं (शून्य)?

मेरी राय में, मुझे लगता है कि list1.extend(list2) और list1.append(num) उत्परिवर्तित सूची के बजाय None (शून्य) लौटना चाहिए। मूल सूची को विनाशकारी रूप से उत्परिवर्तित करने के दुष्प्रभाव के साथ-साथ।

+4

मैं व्यक्तिगत रूप से लगता है कि यह भी एक बुरी तरह से डिजाइन एपीआई है द्वारा एक डिजाइन गलती उत्परिवर्तन नहीं माना जाता है, और आधारित एपीआई खराब हैं। हालांकि यह सवाल StackOverflow के लिए उपयुक्त नहीं है, क्योंकि यह कोई प्रश्न नहीं है; यह एक राय है कि केवल बहस मांगने की संभावना है। जब तक हम शीर्षक नहीं मानते हैं "क्यों विस्तार() और संलग्न() वापस लौटाता है कोई नहीं (शून्य)?" प्रश्न के हिस्से के रूप में, जो मामला आसानी से उत्तरदायी नहीं है जबतक कि आप खुद को देवताओं से पूछें कि उनके दिमाग में क्या चल रहा था। – ninjagecko

+3

यदि आप इस व्यवहार की इच्छा रखते हैं, तो आप 'yourList + [1] 'या' yourList + [1,2,3] 'कर सकते हैं। अफसोस की बात है, अनिवार्य प्रोग्रामिंग शैलियों (जैसे पायथन) "आम तौर पर" वापसी मूल्यों को फेंक देते हैं यदि वे स्वयं लाइनों पर उपयोग किए जाते थे। – ninjagecko

+0

@ninjagecko- एक सवाल पूछा जा रहा है, वह सवाल है 'क्यों विस्तार() और संलग्न() वापस लौटाता है कोई नहीं (शून्य)?' यह जवाब विशेष रूप से देखें: (http://stackoverflow.com/a/1682601/21945) – mhawke

उत्तर

2

मेरा मानना ​​है कि इरादा पठनीय कोड को बढ़ावा देना और बग को कम करना था। यह निर्णय बहुत समय पहले बनाया गया था, लेकिन आप पाइथन/पायथन-डे मेलिंग सूचियों के अभिलेखागार को देखकर शायद अधिक खोज सकते हैं।

python3 इस व्यवहार को बदलने का अवसर होता है, लेकिन आप इसे बना हुआ देखते हैं, तो विकास दल