नेमस्पेस दायरे को लागू करने का एक तरीका है। पायथन में, प्रत्येक पैकेज, मॉड्यूल, क्लास, फंक्शन और मेथड फंक्शन में एक "नेमस्पेस" होता है जिसमें वेरिएबल नाम हल किए जाते हैं। जब किसी फ़ंक्शन, मॉड्यूल या पैकेज का मूल्यांकन किया जाता है (अर्थात, निष्पादन शुरू होता है), एक नाम स्थान बनाया जाता है। इसे "मूल्यांकन संदर्भ" के रूप में सोचें। जब कोई फ़ंक्शन, आदि निष्पादन समाप्त करता है, तो नाम स्थान छोड़ दिया जाता है। चर गिराए जाते हैं। साथ ही एक वैश्विक नाम स्थान है जिसका उपयोग तब किया जाता है जब नाम स्थानीय नाम स्थान में नहीं है।
पायथन के पास एक फ़ाइल में परिभाषाएँ डालने और उन्हें एक स्क्रिप्ट में या दुभाषिया के एक इंटरैक्टिव उदाहरण में उपयोग करने का एक तरीका है। ऐसी फ़ाइल को मॉड्यूल कहा जाता है; मॉड्यूल से परिभाषाओं को अन्य मॉड्यूल या मुख्य मॉड्यूल में आयात किया जा सकता है। तो, एक पायथन मॉड्यूल पुन:प्रयोज्य कोड को समाहित करने के लिए एक पैकेज के अलावा और कुछ नहीं है। मॉड्यूल उस फ़ोल्डर में रहते हैं जिस पर __init__.py फ़ाइल होती है। मॉड्यूल में फ़ंक्शन हो सकते हैं लेकिन कक्षाएं भी हो सकती हैं। आयात कीवर्ड का उपयोग करके मॉड्यूल आयात किए जाते हैं।
दूसरी ओर, कक्षाओं को आपके मुख्य एप्लिकेशन कोड या आपके एप्लिकेशन द्वारा आयात किए गए मॉड्यूल के अंदर परिभाषित किया जा सकता है। कक्षाएं ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग के मूल हैं और इसमें गुण और विधियां हो सकती हैं। आप एक वर्ग के कई उदाहरण बना सकते हैं, लेकिन आप एक मॉड्यूल के उदाहरण नहीं बना सकते। आप मॉड्यूल की तुलना स्थिर कक्षाओं या सिंगलटन से कर सकते हैं।