Я заканчиваю ответ С. Лотта.
Я бы сказал, что пространство имен - это способ реализации управления именами внутри области, поскольку область делает больше, чем просто управление именами.
В языке C области имеют 4 типа: глобальные, функциональные, блочные и функциональные параметры (прототип). Каждый из этих видов может создавать одно или несколько пространств имен, в зависимости от потребностей. Есть 4 нс в C
- теги для з / у / э
- идентификаторы для typenames, имен функций и имен var
- параметры внутри прототипа функции
- члены и битовые поля внутри s / u.
Таким образом, идентификаторы тегов и имена функций не конфликтуют, но имена типов, определенные с помощью typedef, могут конфликтовать с именами переменных.
В python есть встроенное пространство имен, которое содержит глобальные ns, а глобальные ns предоставляются загруженным модулем. Встроенные переменные содержат переменные. Символ для переменной может определять объект или функцию - например, там определяется +
. Глобальный ns модуля длится до завершения.
См. Также , что и, конечно, , что .