Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

प्रोग्रामर द्वारा की जाने वाली सामान्य पायथन प्रोग्रामिंग गलतियां क्या हैं?


यहां कुछ सबसे आम पायथन प्रोग्रामिंग गलतियां/गॉटचा हैं जो प्रोग्रामर करते हैं:

  • स्कोप नाम लुकअप: पायथन LEGB (लोकल, एनक्लोजिंग, ग्लोबल, बिल्ट-इन) के क्रम में स्कोपिंग नियमों का पालन करता है। चूंकि पायथन में सख्त टाइप बाइंडिंग नहीं है, प्रोग्रामर आउटर स्कोप वेरिएबल को किसी अन्य मान से पुनः संबद्ध कर सकते हैं जिसका उपयोग बाद में आउटर स्कोप में किया जा सकता है लेकिन अब किसी अन्य मान से प्रतिस्थापित हो गया है।
  • is और == के बीच अंतर न करना: पायथन में is ऑपरेटर जांचता है कि क्या दोनों ऑब्जेक्ट एक ही मेमोरी एड्रेस को संदर्भित करते हैं। == ऑपरेटर __eq__ फ़ंक्शन को एक्जीक्यूट करता है जो अलग-अलग क्लास के लिए समानता की जांच अलग तरह से कर सकता है।
  • इटरेट करते समय लिस्ट को मॉडिफाई करना: यदि आप इटरेट करते समय लिस्ट से एलिमेंट हटाते हैं, तो आपको IndexError मिलेगा। ऐसा इसलिए है क्योंकि लिस्ट आकार में कम हो रही है जबकि आप इसके साथ इंडेक्स को कम नहीं कर रहे हैं।
  • क्लोजर बाइंडिंग: निम्न कोड पर विचार करें:

उदाहरण

listLambdas = [lambda x : i + x for i in range(5)]
for lam in listLambdas:
    print(lam(10))

आउटपुट

यह आउटपुट देगा:

14
14
14
14
14

चौंक गए? यह क्लोजर में बाइंडिंग के कारण है। इस लिस्ट में सभी लैम्ब्डा वेरिएबल i को संदर्भित करते हैं, यानी जब यह बदलता है, तो ये लैम्ब्डा नए मान को संदर्भित करने लगते हैं।

  • बिल्ट-इन्स के साथ नाम संघर्ष: आपने अपने जीवन में कभी न कभी sum नामक वेरिएबल बनाया होगा। ध्यान दें कि इस मामले में आपने sum फ़ंक्शन के संदर्भ को पुनः असाइन किया है। यह इस तरह की चीजों के लिए तुच्छ लग सकता है लेकिन जब पैकेज का नाम इस तरह रखा जाता है तो यह कुछ गंभीर समस्याएं पैदा कर सकता है। इससे अन्य पैकेज आपके क्लास को स्टैंडर्ड वाले के बजाय इम्पोर्ट कर सकते हैं।
  • ऑपरेटर के लिए अनइंट्यूटिव इम्प्लीमेंटेशन: पायथन क्लास के लिए ऑपरेटर फ़ंक्शन को ओवरलोड करने का एक तरीका प्रदान करता है। अक्सर लोग इन ऑपरेटर को असामान्य तरीके से इम्प्लीमेंट करते हैं और जटिल और अनइंट्यूटिव API बना देते हैं।

  1. - पायथन में फंक्शन के आवश्यक आर्गुमेंट्स क्या हैं?

    आवश्यक आर्गुमेंट्स फंक्शन के अनिवार्य आर्गुमेंट्स होते हैं। इन आर्गुमेंट मानों को फंक्शन कॉल के दौरान सही संख्या और क्रम में पास किया जाना चाहिए। यदि आप दिए गए कोड को चलाते हैं तो आपको निम्न आउटपुट मिलता है: Hi 15 Traceback (most recent call last): File requiredarg1.py, line 4, in requiredArg

  1. - पायथन में डिफ़ॉल्ट आर्गुमेंट्स क्या हैं?

    पायथन फंक्शन आर्गुमेंट्स को डिफ़ॉल्ट मान रखने की अनुमति देता है; यदि फंक्शन को उस आर्गुमेंट के बिना कॉल किया जाता है, तो आर्गुमेंट को उसका डिफ़ॉल्ट मान मिल जाता है। उदाहरण पायथन में फंक्शन आर्गुमेंट्स के लिए सिंटैक्स और डिफ़ॉल्ट मान दर्शाने का एक अलग तरीका है। डिफ़ॉल्ट मान इंगित करते हैं कि यदि फंक्

  1. - पायथन फंक्शन एट्रिब्यूट्स क्या हैं?

    पायथन में सब कुछ एक ऑब्जेक्ट है, और लगभग हर चीज के एट्रिब्यूट्स और मेथड्स होते हैं। पायथन में, फंक्शन्स भी ऑब्जेक्ट्स हैं। इसलिए उनके पास अन्य ऑब्जेक्ट्स की तरह एट्रिब्यूट्स होते हैं। सभी फंक्शन्स में एक बिल्ट-इन एट्रिब्यूट __doc__ होता है, जो फंक्शन सोर्स कोड में परिभाषित डॉक स्ट्रिंग लौटाता है। हम