保存locals()
(或vars()
)调用的结果以返回函数的本地范围。否则,locals()
在生成器表达式内部将返回gen-expr的本地范围。
def test3():
lvar1 = 1
lvar2 = 2
lvar3 = 3
scope = locals()
myDict = dict((name, eval(name, scope)) for name in [
"lvar1", "lvar2", "lvar3"])
print(myDict["lvar1"])
顺便说一句,您不需要明确的理解即可构建该命令:
# copy() avoids quirky, unexpected updates if something else (like a debugger)
# accesses locals() or f_locals
myDict = locals().copy() # or vars().copy()