Как я могу получить в Python глобальные переменные, которые используются в функции?

Я пытаюсь собрать информацию о сбоях, и мне сложно понять, как получить глобальные переменные, которые используются в функции сбоя.

import inspect

fun = 222
other = "junk"

def test():
    global fun
    harold = 888 + fun
    try:
        harold/0
    except:
        frames = inspect.trace()
        print "Local variables:"
        print frames[0][0].f_locals

        print "All global variables, not what I want!"
        print frames[0][0].f_globals

test()

test () использует только "развлечение", но f_globals предоставляет все доступные глобальные переменные. Есть ли способ получить только глобальные объекты, которые используются этой функцией?

9
задан Pat Corwin 25 March 2011 в 08:07
поделиться