पायथन और C++ में नेमस्पेस की वास्तव में तुलना नहीं की जा सकती है। उदाहरण के लिए, C++ में -
// a.h namespace ns { struct A { .. }; struct B { .. }; }
अगर हमें ऐसा करना होता -
#include "a.h" using ns::A;
उस कोड का मुद्दा एक अयोग्य (यानी, एनएस ::ए लिखने के लिए नहीं) लिखने में सक्षम होना है। अब, आप अजगर के समकक्ष −
. के रूप में विचार कर सकते हैंfrom a import A
लेकिन उपयोग की परवाह किए बिना, संपूर्ण एएच हेडर अभी भी शामिल और संकलित किया जाएगा, इसलिए हम अभी भी एनएस ::बी लिखने में सक्षम होंगे, जबकि पायथन संस्करण में, ए बी दिखाई नहीं देगा। अन्य C++ संस्करण,
using namespace ns;
पायथन एनालॉग भी नहीं है। यह पूरे कोड-बेस में नेमस्पेस एनएस से सभी नामों को लाता है - और नेमस्पेस का पुन:उपयोग किया जा सकता है। उदाहरण के लिए,
#include <vector> #include <map> #include <algorithm> using namespace std; // bring in EVERYTHING
वह एक पंक्ति −
. के बराबर हैfrom vector import * from map import * from algorithm import *
कम से कम यह क्या करता है, लेकिन फिर यह केवल वास्तव में नामस्थान एसटीडी में लाता है - जो जरूरी नहीं कि सब कुछ हो।