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

पायथन में सामान्य प्रोग्रामिंग त्रुटियां या 'गॉथचास' क्या हैं?


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

स्कोप नाम लुकअप: पायथन LEGB (स्थानीय, संलग्न, वैश्विक, अंतर्निर्मित) के क्रम में स्कोपिंग नियमों का पालन करता है। चूंकि पायथन में कोई सख्त प्रकार बाध्यकारी नहीं है, प्रोग्रामर बाहरी स्कोप वैरिएबल को किसी अन्य मान से दोबारा जोड़ सकते हैं जिसे बाद में बाहरी दायरे में उपयोग किया जा सकता है लेकिन अब इसे किसी अन्य मान से बदल दिया गया है।

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 को संदर्भित करते हैं, अर्थात, जब यह बदलता है, तो ये लैम्ब्डा नए मान को संदर्भित करना शुरू करते हैं।

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

ऑपरेटरों के लिए सहज ज्ञान युक्त कार्यान्वयन: पायथन कक्षाओं के लिए ऑपरेटर कार्यों को अधिभारित करने का एक तरीका प्रदान करता है। अक्सर, लोग इन ऑपरेटरों को असामान्य तरीके से लागू करते हैं और अंत में जटिल और सहज ज्ञान युक्त एपीआई बनाते हैं।


  1. पायथन में किसी फ़ंक्शन के आवश्यक तर्क क्या हैं?

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

  1. पायथन में डिफ़ॉल्ट तर्क क्या हैं?

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

  1. पायथन फ़ंक्शन विशेषताएँ क्या हैं?

    पायथन में सब कुछ एक वस्तु है, और लगभग हर चीज में विशेषताएँ और विधियाँ होती हैं। पायथन में, कार्य भी वस्तुएं हैं। इसलिए उनके पास अन्य वस्तुओं की तरह गुण हैं। सभी फ़ंक्शन में एक अंतर्निहित विशेषता __doc__ होती है, जो फ़ंक्शन स्रोत कोड में परिभाषित दस्तावेज़ स्ट्रिंग लौटाती है। हम उन्हें नई विशेषताएँ भ