अजगर गतिशील है। एक वर्ग का निर्माण एक निष्पादन योग्य कथन है , जैसा कि एक मॉड्यूल का आयात होता है; इसे सशर्त बनाया जा सकता है। एक वर्ग को निर्माण के बाद बदल दिया जा सकता है; यह आसान मेटाप्रोग्रामिंग और एओपी के लिए अनुमति देता है।
कोई इंटरफेस नहीं हैं ; बतख टाइपिंग नियम। यदि आपको उनकी सख्त जरूरत है, तो 'एब्सट्रैक्ट बेस क्लासेस (एबीसी)' हैं, लेकिन आमतौर पर आप इंटरफेस को मिस नहीं करते हैं, क्योंकि स्टैटिक टाइप चेकिंग वैसे भी नहीं होती है।
हालांकि सब कुछ एक वस्तु है, कार्य वस्तुओं से पहले आते हैं। एक मॉड्यूल में सिर्फ फ़ंक्शन (और कोई कक्षाएं नहीं) होना पूरी तरह से ठीक है।
सब कुछ एक प्रथम श्रेणी की संस्था है। मापदंडों के रूप में कार्य करना, उन्हें वापस करना और चर को निर्दिष्ट करना आदर्श है। कक्षाओं के लिए डिट्टो। तरीके सिर्फ कार्य हैं; आप एक उदाहरण विधि को संभाल सकते हैं जैसे कि यह एक नियमित कार्य था, इसे पास करें, आदि।
बिल्ट-इन dicts, सेट्स, सूचियों और टुपल्स का उपयोग करें। सूचियाँ और dicts परस्पर हैं, tuples नहीं हैं। वे सभी बहुत कुशल और वाक्यात्मक रूप से रसीले हैं। एक ट्यूपल का उपयोग करके फ़ंक्शन से कई मान वापस करने की आदत डालें (आपको कोष्ठक की भी आवश्यकता नहीं है)। सादे सूचियों, टुपल्स और डाइचेस ('हैशटेबल्स') से बने गर्भनिरोधकों के साथ बहुत ही साधारण वस्तुओं के जटिल पदानुक्रमों को बदलने की आदत डालें, यह जीवन को सरल बनाता है।
पायथन में एफपी समर्थन का एक अच्छा सा हिस्सा है; सूची समझ और फिर पुनरावृत्तियों और जनरेटर सीखें। ये बहुत मदद करते हैं।
किसी भी ऑपरेटर को उचित तरीकों को परिभाषित करके ओवरलोड किया जा सकता है, इसलिए इसके अलावा या तुलना जो आप चाहते हैं उसे वापस कर सकते हैं। SQLAlchemy जैसी चीजों के साथ काम करना याद रखें।
कोई अशक्त नहीं है, केवल कोई नहीं, एक पूर्ण वस्तु है। आप किसी को भी ठीक नहीं प्रिंट कर सकते हैं, आदि पासिंग कोई भी नहीं जहां एक और उदाहरण की उम्मीद परिणाम है आमतौर पर एक एट्रीब्यूटर में, एक एनपीई नहीं, कभी-कभी निष्पादन पाइपलाइन से नीचे।
अजगर की पूरी तरह से गतिशील प्रकृति के कारण, आपके पास लगभग कोई स्थिर चेक नहीं है । आप एक ऐसे नाम का उल्लेख कर सकते हैं जो आपके कार्यक्रम में मौजूद नहीं है (उदाहरण के लिए एक टाइपो), या केवल एक विशेष निष्पादन पथ में परिभाषित किया गया है, और कुछ भी आपको इसकी याद नहीं दिलाएगा जब तक कि निष्पादन वास्तव में इस संदर्भ को हिट नहीं करता है और एक NameError उठाया जाता है। अपने चर के दायरे से सावधान रहें, और अधिक इकाई परीक्षण लिखें।
पायथन की पूरी तरह से गतिशील प्रकृति के कारण, ऑब्जेक्ट लगभग हमेशा निंदनीय हैं। आमतौर पर आप एक उदाहरण के लिए भी फ़ील्ड और विधियाँ जोड़ सकते हैं और इस प्रकार अनजाने में इसकी स्थिति या विधि सेट को हटा या अधिलेखित कर सकते हैं । एट्रिब्यूटिंग विशेषताएँ सावधान रहें। यह दिलचस्प संभावनाओं के लिए भी अनुमति देता है :)
कोई प्रतीकात्मक स्थिरांक नहीं हैं , केवल चर हैं। जांचें कि आप अनजाने में एक 'स्थिरांक' को अधिलेखित नहीं करते हैं। यदि आप सकारात्मक रूप से सुनिश्चित होना चाहते हैं कि आप एक स्थाई को अधिलेखित नहीं कर सकते हैं, तो फ़ंक्शन या संपत्ति (जो प्रच्छन्न रूप में एक फ़ंक्शन है) का उपयोग करें।
पायथन के धागे आई / ओ-बाउंड प्रोसेसिंग के लिए अच्छे हैं, लेकिन सीपीयू-बाउंड के लिए नहीं। समानांतर धागों में इसे चलाकर कम्प्यूटेशनल कार्य को गति देने का प्रयास न करें।