If the code block contains exec statement or the
construct from ... import *, the semantics of names not
explicitly mentioned in a global statement change subtly: name
lookup first searches the local name space, then the global one, then
the built-in one.