เนมสเปซใน Python และ C++ ไม่สามารถเปรียบเทียบได้จริงๆ ตัวอย่างเช่น ใน C++ −
// a.h namespace ns { struct A { .. }; struct B { .. }; }
ถ้าเราจะทำสิ่งนี้ −
#include "a.h" using ns::A;
จุดประสงค์ของโค้ดนั้นคือสามารถเขียน A ได้อย่างไม่มีเงื่อนไข (เช่น ไม่ต้องเขียน ns::A) ตอนนี้ คุณอาจพิจารณาว่าเทียบเท่ากับหลามเป็น −
from a import A
แต่ไม่ว่าการใช้งานจะเป็นอย่างไร ส่วนหัว ah ทั้งหมดจะยังคงถูกรวมและคอมไพล์ ดังนั้นเราจะยังสามารถเขียน ns::B ได้ ในขณะที่เวอร์ชัน Python นั้น a.B จะไม่ปรากฏให้เห็น เวอร์ชัน C++ อื่นๆ
using namespace ns;
ยังไม่มีอนาล็อก Python มันนำชื่อทั้งหมดจากเนมสเปซ ns มาตลอดทั้งโค้ดเบสทั้งหมด และสามารถใช้เนมสเปซซ้ำได้ ตัวอย่างเช่น
#include <vector> #include <map> #include <algorithm> using namespace std; // bring in EVERYTHING
บรรทัดนั้นเทียบเท่ากับ −
from vector import * from map import * from algorithm import *
อย่างน้อยก็ในสิ่งที่ทำ แต่จริง ๆ แล้วมันก็นำเฉพาะสิ่งที่อยู่ในเนมสเปซ std เท่านั้นซึ่งไม่จำเป็นต้องเป็นทุกอย่าง