sys._getframe()
返回的Frame对象包含成员f_locals
和f_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)