Python과 C++의 네임스페이스는 실제로 비교할 수 없습니다. 예를 들어, C++에서 −
// a.h namespace ns { struct A { .. }; struct B { .. }; }
이렇게 하면 -
#include "a.h" using ns::A;
그 코드의 요점은 A를 unqualified로 작성할 수 있다는 것입니다(즉, ns::A를 작성할 필요가 없음). 이제 python을 다음과 같이 생각할 수 있습니다. -
from a import A
그러나 사용에 관계없이 전체.h 헤더가 여전히 포함되고 컴파일되므로 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에 있는 것만 가져옵니다. 이것이 반드시 전부는 아닙니다.