1# mode: run
2# tag: exec
3
4exec "GLOBAL = 1234"
5
6def exec_module_scope():
7    """
8    >>> globals()['GLOBAL']
9    1234
10    """
11
12def exec_func_scope():
13    """
14    >>> sorted(exec_func_scope().items())
15    [('G', 1234), ('a', 'b')]
16    """
17    d = {}
18    exec "d['a'] = 'b'; d['G'] = GLOBAL"
19    return d
20
21def exec_pyclass_scope():
22    """
23    >>> obj = exec_pyclass_scope()
24    >>> obj.a
25    'b'
26    >>> obj.G
27    1234
28    """
29    class TestExec:
30        exec "a = 'b'; G = GLOBAL"
31    return TestExec
32