There are two built-in functions, globals and locals. These return dicts of the contents of the global and local scope.
Locals usually refers to the contents of a function, in which case it is a one-time copy. Updates to the dict do not change the local scope:
>>> def local_fail():
... a = 1
... locals()['a'] = 2
... print 'a is', a
...
>>> local_fail()
a is 1
However, in the body of a class definition, locals points to the __dict__ of the class, which is mutable.
>>> class Success(object):
... locals().update({'a': 1})
...
>>> Success.a
1