In Chapter 3, Using Modules and Packages, we introduced the concept of a
global namespace, and showed how the
import statement adds the name of the imported module or package into the global namespace. This description was actually a slight oversimplification. In fact, the
import statement adds the imported module or package to the current namespace, which may or may not be the global namespace.
In Python, there are two namespaces: the global namespace and the local namespace. The global namespace is where all the top-level definitions in your source file are stored. For example, consider the following Python module:
import random import string def set_length(length): global _length _length = length def make_name(): global _length letters =  for i in range(length): letters.append(random.choice(string.letters)) return "".join(letters)