Чтение родительской области в python

Предположим, у меня есть иерархия функций, я хочу иметь доступ к(не изменить!)объем родителей. Вот наглядный пример.

def f():
    a = 2
    b = 1
    def g():
        b = 2
        c = 1
        print globals() #contains a=1 and d=4
        print locals() #contains b=2 and c=1, but no a
        print dict(globals(), **locals()) #contains a=1, d=4 (from the globals), b=2 and c=1 (from g)
        # I want a=2 and b=1 (from f), d=4 (from globals) and no c
    g()
a = 1
d = 4
f()

Могу ли я получить доступ к области fизнутри g?

7
задан Sven Marnach 19 July 2012 в 12:54
поделиться