解析包括非本地人在内的框架对象的变量名称

时间:2014-12-15 15:53:53

标签: python

sys._getframe()返回的Frame对象包含成员f_localsf_globals,应该是自我解释。如何正确解析包含非局部变量的Frame对象中的变量名?

我更喜欢在Python 2和Python中都能使用的解决方案。 3。

def resolve_var(frame, name):
    if name in frame.f_locals:
        return frame.f_locals[name]
    # ... non-local variables here
    if name in frame.f_globals:
        return frame.f_globals[name]
    if hasattr(__builtins__, name):
        return getattr(__builtins__, name)
    raise NameError(name)

0 个答案:

没有答案