- Namespaces map names to objects and are implemented as dictionaries in Python. Examples include built-in names, global module names, and local function names.
- There is no relation between names in different namespaces. A name prefixed with a module name refers to an attribute of that module.
- Namespaces are created at different times - built-in names exist at interpreter start, module namespaces when the module is read in, and local function namespaces when a function is called.